<?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>100724</bug_id>
          
          <creation_ts>2012-10-29 20:39:27 -0700</creation_ts>
          <short_desc>[BlackBerry] Clean the code of &quot;JavaScriptDebuggerBlackBerry&quot;</short_desc>
          <delta_ts>2012-10-30 19:50:54 -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>WebKit BlackBerry</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>0</everconfirmed>
          <reporter name="Peter Wang">PeterHWang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>charles.wei</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kpiascik</cc>
    
    <cc>leoyang</cc>
    
    <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>753965</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-29 20:39:27 -0700</bug_when>
    <thetext>Just open this bug to clean the code of &quot;JavaScriptDebuggerBlackBerry&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>753975</commentid>
    <comment_count>1</comment_count>
      <attachid>171367</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-29 21:04:24 -0700</bug_when>
    <thetext>Created attachment 171367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754319</commentid>
    <comment_count>2</comment_count>
    <who name="Konrad Piascik">kpiascik</who>
    <bug_when>2012-10-30 06:48:11 -0700</bug_when>
    <thetext>The patch looks fine to me, I&apos;d just like a better commit message.  We&apos;re not cleaning up the code but removing it entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754326</commentid>
    <comment_count>3</comment_count>
      <attachid>171367</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-10-30 06:53:22 -0700</bug_when>
    <thetext>Comment on attachment 171367
Patch

Based on Konrad&apos;s comment, this patch seems okay but please fix the ChangeLog before landing, I guess that includes changing the bug title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754851</commentid>
    <comment_count>4</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-30 18:17:40 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 171367 [details])
&gt; Based on Konrad&apos;s comment, this patch seems okay but please fix the ChangeLog before landing, I guess that includes changing the bug title.

Ok, thank you very much</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754861</commentid>
    <comment_count>5</comment_count>
      <attachid>171563</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-30 18:43:22 -0700</bug_when>
    <thetext>Created attachment 171563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754867</commentid>
    <comment_count>6</comment_count>
      <attachid>171563</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-30 18:59:49 -0700</bug_when>
    <thetext>Comment on attachment 171563
Patch

reviewed by Rob, new path is for correct ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754868</commentid>
    <comment_count>7</comment_count>
      <attachid>171563</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-30 19:00:15 -0700</bug_when>
    <thetext>Comment on attachment 171563
Patch

Rejecting attachment 171563 from review queue.

peter.wang@torchmobile.com.cn does not have reviewer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have reviewer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have reviewer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your reviewer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754869</commentid>
    <comment_count>8</comment_count>
      <attachid>171563</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-30 19:00:57 -0700</bug_when>
    <thetext>Comment on attachment 171563
Patch

reviewed by Rob, new path is for correct ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754907</commentid>
    <comment_count>9</comment_count>
      <attachid>171563</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-30 19:50:49 -0700</bug_when>
    <thetext>Comment on attachment 171563
Patch

Clearing flags on attachment: 171563

Committed r132978: &lt;http://trac.webkit.org/changeset/132978&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>754908</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-30 19:50:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171367</attachid>
            <date>2012-10-29 21:04:24 -0700</date>
            <delta_ts>2012-10-30 18:43:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100724-20121030120246.patch</filename>
            <type>text/plain</type>
            <size>17557</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZhNzY4YTlhZTVmMGYwNTU1
Njg4Yzk1MThjMmY3Y2RmYzk0MDNmNmMuLmJmNmYxODQyNzExN2NkMTVhMzdkMDIyNWY4ZTIxMTFl
ZTdkOGY3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMjkgIFBldGVyIFdh
bmcgIDxwZXRlci53YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBbQmxhY2tCZXJy
eV0gQ2xlYW4gdGhlIGNvZGUgb2YgIkphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkiCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA3MjQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbiB0aGUgY29k
ZSBvZiBKYXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5LiAKKworICAgICAgICAqIFBsYXRmb3Jt
QmxhY2tCZXJyeS5jbWFrZToKKwogMjAxMi0xMC0yNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEz
MjYwMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGU0MmU2ZDMwOTY0ZGY1YWY2
Y2U0ZGE0NjBiNGI0NDY2MDI1MzY4YTcuLjBkY2RmZjRkZWJiMmZkYzZkZDlmNzcwYTIwZjIwNWFj
MGFlNjU0ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDEyLTEwLTI5ICBQZXRlciBXYW5nICA8cGV0ZXIud2FuZ0B0b3JjaG1vYmlsZS5jb20uY24+
CisKKyAgICAgICAgW0JsYWNrQmVycnldIENsZWFuIHRoZSBjb2RlIG9mICJKYXZhU2NyaXB0RGVi
dWdnZXJCbGFja0JlcnJ5IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAwNzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ2xlYW4gdGhlIGNvZGUgb2YgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeS4g
CisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgICogQXBpL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9KYXZhU2NyaXB0RGVi
dWdnZXJCbGFja0JlcnJ5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9K
YXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5Lmg6IFJlbW92ZWQuCisKIDIwMTItMTAtMjYgIEph
Y2t5IEppYW5nICA8emhhamlhbmdAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV1bRnVs
bFNjcmVlbl0gZW50ZXJpbmcvbGVhdmluZyBmdWxsc2NyZWVuIHJlc3VsdHMgaW4gdGVtcG9yYXJ5
IGdsaXRjaGVzIG9uIHRoZSBzY3JlZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21h
a2UKaW5kZXggMmE1YWY3N2M2YjBlOWY4OTMxYzhkYzFlNzE4YWNkYzlmN2ExYjY5Zi4uYzYyYmMx
N2EzNjRlOGYwZGZhMDQ0OTZiMTAyZjY0YmM4ZGI4MDk5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bUJsYWNrQmVycnkuY21ha2UKQEAgLTExMiw3ICsxMTIsNiBAQCBMSVNUKEFQUEVORCBXZWJLaXRf
U09VUkNFUwogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvR2VvbG9jYXRpb25DbGllbnRC
bGFja0JlcnJ5LmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSWNvbkRhdGFiYXNl
Q2xpZW50QmxhY2tCZXJyeS5jcHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudEJsYWNrQmVycnkuY3BwCi0gICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9K
YXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5LmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvTmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5LmNwcAogICAgIGJsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvTm90aWZpY2F0aW9uUHJlc2VudGVySW1wbC5jcHAKICAgICBibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L1BhZ2VQb3B1cEJsYWNrQmVycnkuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCA5YzcwNTZjOWE2NzQ0NzAyODU4ZTc2ZmZmZTNj
YjIyMDE4MWI5NWY3Li45YjEyZjk2YzgyYzJlN2ZiYzAzYmFjNjUyMTViYjdmYWNlN2VhNTg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTgxLDcgKzgxLDYg
QEAKICNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yT3ZlcmxheS5oIgotI2luY2x1
ZGUgIkphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkuaCIKICNpbmNsdWRlICJKYXZhU2NyaXB0
VmFyaWFudF9wLmgiCiAjaW5jbHVkZSAiTGF5ZXJXZWJLaXRUaHJlYWQuaCIKICNpZiBFTkFCTEUo
TkVUV09SS19JTkZPKQpAQCAtNDg4OCwxMDggKzQ4ODcsNiBAQCB2b2lkIFdlYlBhZ2U6OnJ1bkxh
eW91dFRlc3RzKCkKICNlbmRpZgogfQogCi1ib29sIFdlYlBhZ2U6OmVuYWJsZVNjcmlwdERlYnVn
Z2VyKCkKLXsKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAoZC0+bV9z
Y3JpcHREZWJ1Z2dlcikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBkLT5tX3NjcmlwdERl
YnVnZ2VyID0gYWRvcHRQdHIobmV3IEphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkodGhpcy0+
ZCkpOwotCi0gICAgcmV0dXJuICEhZC0+bV9zY3JpcHREZWJ1Z2dlcjsKLSNlbmRpZgotfQotCi1i
b29sIFdlYlBhZ2U6OmRpc2FibGVTY3JpcHREZWJ1Z2dlcigpCi17Ci0jaWYgRU5BQkxFKEpBVkFT
Q1JJUFRfREVCVUdHRVIpCi0gICAgaWYgKCFkLT5tX3NjcmlwdERlYnVnZ2VyKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQotICAgIGQtPm1fc2NyaXB0RGVidWdnZXIuY2xlYXIoKTsKLSAgICByZXR1
cm4gdHJ1ZTsKLSNlbmRpZgotfQotCi12b2lkIFdlYlBhZ2U6OmFkZEJyZWFrcG9pbnQoY29uc3Qg
dW5zaWduZWQgc2hvcnQqIHVybCwgdW5zaWduZWQgdXJsTGVuZ3RoLCBpbnQgbGluZU51bWJlciwg
Y29uc3QgdW5zaWduZWQgc2hvcnQqIGNvbmRpdGlvbiwgdW5zaWduZWQgY29uZGl0aW9uTGVuZ3Ro
KQotewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIGlmIChkLT5tX3Njcmlw
dERlYnVnZ2VyKQotICAgICAgICBkLT5tX3NjcmlwdERlYnVnZ2VyLT5hZGRCcmVha3BvaW50KHVy
bCwgdXJsTGVuZ3RoLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGNvbmRpdGlvbkxlbmd0aCk7Ci0j
ZW5kaWYKLX0KLQotdm9pZCBXZWJQYWdlOjp1cGRhdGVCcmVha3BvaW50KGNvbnN0IHVuc2lnbmVk
IHNob3J0KiB1cmwsIHVuc2lnbmVkIHVybExlbmd0aCwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IHVu
c2lnbmVkIHNob3J0KiBjb25kaXRpb24sIHVuc2lnbmVkIGNvbmRpdGlvbkxlbmd0aCkKLXsKLSNp
ZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAoZC0+bV9zY3JpcHREZWJ1Z2dl
cikKLSAgICAgICAgZC0+bV9zY3JpcHREZWJ1Z2dlci0+dXBkYXRlQnJlYWtwb2ludCh1cmwsIHVy
bExlbmd0aCwgbGluZU51bWJlciwgY29uZGl0aW9uLCBjb25kaXRpb25MZW5ndGgpOwotI2VuZGlm
Ci19Ci0KLXZvaWQgV2ViUGFnZTo6cmVtb3ZlQnJlYWtwb2ludChjb25zdCB1bnNpZ25lZCBzaG9y
dCogdXJsLCB1bnNpZ25lZCB1cmxMZW5ndGgsIGludCBsaW5lTnVtYmVyKQotewotI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIGlmIChkLT5tX3NjcmlwdERlYnVnZ2VyKQotICAg
ICAgICBkLT5tX3NjcmlwdERlYnVnZ2VyLT5yZW1vdmVCcmVha3BvaW50KHVybCwgdXJsTGVuZ3Ro
LCBsaW5lTnVtYmVyKTsKLSNlbmRpZgotfQotCi1ib29sIFdlYlBhZ2U6OnBhdXNlT25FeGNlcHRp
b25zKCkKLXsKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICByZXR1cm4gZC0+
bV9zY3JpcHREZWJ1Z2dlciA/IGQtPm1fc2NyaXB0RGVidWdnZXItPnBhdXNlT25FeGNlcHRpb25z
KCkgOiBmYWxzZTsKLSNlbmRpZgotfQotCi12b2lkIFdlYlBhZ2U6OnNldFBhdXNlT25FeGNlcHRp
b25zKGJvb2wgcGF1c2UpCi17Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAg
aWYgKGQtPm1fc2NyaXB0RGVidWdnZXIpCi0gICAgICAgIGQtPm1fc2NyaXB0RGVidWdnZXItPnNl
dFBhdXNlT25FeGNlcHRpb25zKHBhdXNlKTsKLSNlbmRpZgotfQotCi12b2lkIFdlYlBhZ2U6OnBh
dXNlSW5EZWJ1Z2dlcigpCi17Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAg
aWYgKGQtPm1fc2NyaXB0RGVidWdnZXIpCi0gICAgICAgIGQtPm1fc2NyaXB0RGVidWdnZXItPnBh
dXNlSW5EZWJ1Z2dlcigpOwotI2VuZGlmCi19Ci0KLXZvaWQgV2ViUGFnZTo6cmVzdW1lRGVidWdn
ZXIoKQotewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIGlmIChkLT5tX3Nj
cmlwdERlYnVnZ2VyKQotICAgICAgICBkLT5tX3NjcmlwdERlYnVnZ2VyLT5yZXN1bWVEZWJ1Z2dl
cigpOwotI2VuZGlmCi19Ci0KLXZvaWQgV2ViUGFnZTo6c3RlcE92ZXJTdGF0ZW1lbnRJbkRlYnVn
Z2VyKCkKLXsKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAoZC0+bV9z
Y3JpcHREZWJ1Z2dlcikKLSAgICAgICAgZC0+bV9zY3JpcHREZWJ1Z2dlci0+c3RlcE92ZXJTdGF0
ZW1lbnRJbkRlYnVnZ2VyKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBXZWJQYWdlOjpzdGVwSW50b1N0
YXRlbWVudEluRGVidWdnZXIoKQotewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQot
ICAgIGlmIChkLT5tX3NjcmlwdERlYnVnZ2VyKQotICAgICAgICBkLT5tX3NjcmlwdERlYnVnZ2Vy
LT5zdGVwSW50b1N0YXRlbWVudEluRGVidWdnZXIoKTsKLSNlbmRpZgotfQotCi12b2lkIFdlYlBh
Z2U6OnN0ZXBPdXRPZkZ1bmN0aW9uSW5EZWJ1Z2dlcigpCi17Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCi0gICAgaWYgKGQtPm1fc2NyaXB0RGVidWdnZXIpCi0gICAgICAgIGQtPm1f
c2NyaXB0RGVidWdnZXItPnN0ZXBPdXRPZkZ1bmN0aW9uSW5EZWJ1Z2dlcigpOwotI2VuZGlmCi19
Ci0KIHVuc2lnbmVkIFdlYlBhZ2U6OnRpbWVvdXRGb3JKYXZhU2NyaXB0RXhlY3V0aW9uKCkgY29u
c3QKIHsKICAgICByZXR1cm4gU2V0dGluZ3M6OnRpbWVvdXRGb3JKYXZhU2NyaXB0RXhlY3V0aW9u
KGQtPm1fcGFnZS0+Z3JvdXBOYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2UuaAppbmRleCBhMjYyOTI3MTc1ODk2YmIwOGU4OTE5Mzk0ZDI4M2JkMTY5OTI0NTYzLi5hZTU5
ZDhmN2E1ZTk5MWFmZTcyZjUzOTExM2YyODhmMmY0MTY4NzZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuaApAQCAtMjI4LDI3ICsyMjgsOSBAQCBwdWJsaWM6CiAgICAgLy8g
Q2FzZSBzZW5zaXRpdml0eSwgd3JhcHBpbmcsIGFuZCBoaWdobGlnaHRpbmcgYWxsIG1hdGNoZXMg
YXJlIGFsc28gdG9nZ2xlYWJsZS4KICAgICBib29sIGZpbmROZXh0U3RyaW5nKGNvbnN0IGNoYXIq
LCBib29sIGZvcndhcmQsIGJvb2wgY2FzZVNlbnNpdGl2ZSwgYm9vbCB3cmFwLCBib29sIGhpZ2hs
aWdodEFsbE1hdGNoZXMpOwogCi0gICAgLy8gSmF2YVNjcmlwdERlYnVnZ2VyIGludGVyZmFjZS4K
LSAgICBib29sIGVuYWJsZVNjcmlwdERlYnVnZ2VyKCk7Ci0gICAgYm9vbCBkaXNhYmxlU2NyaXB0
RGVidWdnZXIoKTsKLQogICAgIEpTQ29udGV4dFJlZiBzY3JpcHRDb250ZXh0KCkgY29uc3Q7CiAg
ICAgSlNWYWx1ZVJlZiB3aW5kb3dPYmplY3QoKSBjb25zdDsKIAotICAgIHZvaWQgYWRkQnJlYWtw
b2ludChjb25zdCB1bnNpZ25lZCBzaG9ydCogdXJsLCB1bnNpZ25lZCB1cmxMZW5ndGgsIGludCBs
aW5lTnVtYmVyLCBjb25zdCB1bnNpZ25lZCBzaG9ydCogY29uZGl0aW9uLCB1bnNpZ25lZCBjb25k
aXRpb25MZW5ndGgpOwotICAgIHZvaWQgdXBkYXRlQnJlYWtwb2ludChjb25zdCB1bnNpZ25lZCBz
aG9ydCogdXJsLCB1bnNpZ25lZCB1cmxMZW5ndGgsIGludCBsaW5lTnVtYmVyLCBjb25zdCB1bnNp
Z25lZCBzaG9ydCogY29uZGl0aW9uLCB1bnNpZ25lZCBjb25kaXRpb25MZW5ndGgpOwotICAgIHZv
aWQgcmVtb3ZlQnJlYWtwb2ludChjb25zdCB1bnNpZ25lZCBzaG9ydCogdXJsLCB1bnNpZ25lZCB1
cmxMZW5ndGgsIGludCBsaW5lTnVtYmVyKTsKLQotICAgIGJvb2wgcGF1c2VPbkV4Y2VwdGlvbnMo
KTsKLSAgICB2b2lkIHNldFBhdXNlT25FeGNlcHRpb25zKGJvb2wpOwotCi0gICAgdm9pZCBwYXVz
ZUluRGVidWdnZXIoKTsKLSAgICB2b2lkIHJlc3VtZURlYnVnZ2VyKCk7Ci0KLSAgICB2b2lkIHN0
ZXBPdmVyU3RhdGVtZW50SW5EZWJ1Z2dlcigpOwotICAgIHZvaWQgc3RlcEludG9TdGF0ZW1lbnRJ
bkRlYnVnZ2VyKCk7Ci0gICAgdm9pZCBzdGVwT3V0T2ZGdW5jdGlvbkluRGVidWdnZXIoKTsKLQog
ICAgIHVuc2lnbmVkIHRpbWVvdXRGb3JKYXZhU2NyaXB0RXhlY3V0aW9uKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRUaW1lb3V0Rm9ySmF2YVNjcmlwdEV4ZWN1dGlvbih1bnNpZ25lZCBtcyk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmggYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VfcC5oCmluZGV4IGExYzRkNThkMTg3ZTE5
MzZjMjcwZTg2NTUxNDNlYjA0N2FjMTZjYzAuLmM3Njc4MDk4ZWI4MjJiMDA5Zjk1ZjZkNjE2NWI3
ZmIyY2VkMTliYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
UGFnZV9wLmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlX3AuaApA
QCAtNTUsNyArNTUsNiBAQCBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBHZW9s
b2NhdGlvbkNsaWVudEJsYWNrQmVycnk7CiBjbGFzcyBHcmFwaGljc0xheWVyQmxhY2tCZXJyeTsK
LWNsYXNzIEphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnk7CiBjbGFzcyBMYXllcldlYktpdFRo
cmVhZDsKIGNsYXNzIE5vZGU7CiBjbGFzcyBQYWdlOwpAQCAtNDgwLDEwICs0NzksNiBAQCBwdWJs
aWM6CiAgICAgT3duUHRyPFdlYlRhcEhpZ2hsaWdodD4gbV90YXBIaWdobGlnaHQ7CiAgICAgT3du
UHRyPFNlbGVjdGlvbk92ZXJsYXk+IG1fc2VsZWN0aW9uT3ZlcmxheTsKIAotI2lmIEVOQUJMRShK
QVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIE93blB0cjxXZWJDb3JlOjpKYXZhU2NyaXB0RGVidWdn
ZXJCbGFja0JlcnJ5PiBtX3NjcmlwdERlYnVnZ2VyOwotI2VuZGlmCi0KICAgICBib29sIG1fdmlz
aWJsZTsKICAgICBBY3RpdmF0aW9uU3RhdGVUeXBlIG1fYWN0aXZhdGlvblN0YXRlOwogICAgIGJv
b2wgbV9zaG91bGRSZXNldFRpbGVzV2hlblNob3duOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0phdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnku
Y3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0phdmFTY3JpcHRE
ZWJ1Z2dlckJsYWNrQmVycnkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTRj
NDI2NmY2NjQwMWUwMmVkNTMxYzI2NTMyN2FjZWZmN2FmNmQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9KYXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDE3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmls
ZSBJbmMuIGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLwotICogQ29weXJpZ2h0IChDKSAyMDEw
LCAyMDExLCAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3Rvbiwg
TUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2lmIEVO
QUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotI2luY2x1ZGUgIkphdmFTY3JpcHREZWJ1Z2dlckJs
YWNrQmVycnkuaCIKLQotI2luY2x1ZGUgIkphdmFTY3JpcHRDYWxsRnJhbWUuaCIKLSNpbmNsdWRl
ICJQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCIKLSNpbmNsdWRlICJTY3JpcHRCcmVha3BvaW50Lmgi
Ci0jaW5jbHVkZSAiU291cmNlQ29kZS5oIgotI2luY2x1ZGUgIldlYlBhZ2VfcC5oIgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUphdmFT
Y3JpcHREZWJ1Z2dlckJsYWNrQmVycnk6OkphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkoQmxh
Y2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUpCi0gICAgOiBt
X3dlYlBhZ2VQcml2YXRlKHdlYlBhZ2VQcml2YXRlKQotICAgICwgbV9kZWJ1Z1NlcnZlcihQYWdl
U2NyaXB0RGVidWdTZXJ2ZXI6OnNoYXJlZCgpKQotewotICAgIHN0YXJ0KCk7Ci19Ci0KLUphdmFT
Y3JpcHREZWJ1Z2dlckJsYWNrQmVycnk6On5KYXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5KCkK
LXsKLSAgICBzdG9wKCk7Ci19Ci0KLXZvaWQgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTo6
c3RhcnQoKQotewotICAgIG1fZGVidWdTZXJ2ZXIuYWRkTGlzdGVuZXIodGhpcywgbV93ZWJQYWdl
UHJpdmF0ZS0+bV9wYWdlKTsKLX0KLQotdm9pZCBKYXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5
OjpzdG9wKCkKLXsKLSAgICBtX2RlYnVnU2VydmVyLnJlbW92ZUxpc3RlbmVyKHRoaXMsIG1fd2Vi
UGFnZVByaXZhdGUtPm1fcGFnZSk7Ci19Ci0KLXZvaWQgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tC
ZXJyeTo6YWRkQnJlYWtwb2ludChjb25zdCB1bnNpZ25lZCBzaG9ydCogdXJsLCB1bnNpZ25lZCB1
cmxMZW5ndGgsIGludCBsaW5lTnVtYmVyLCBjb25zdCB1bnNpZ25lZCBzaG9ydCogY29uZGl0aW9u
LCB1bnNpZ25lZCBjb25kaXRpb25MZW5ndGgpCi17Ci0gICAgaWYgKCF1cmwgfHwgIXVybExlbmd0
aCkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghbV9jdXJyZW50Q2FsbEZyYW1lKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBTdHJpbmcgc291cmNlU3RyaW5nKHVybCwgdXJsTGVuZ3RoKTsKLSAg
ICBTdHJpbmcgY29uZGl0aW9uU3RyaW5nKGNvbmRpdGlvbiwgY29uZGl0aW9uTGVuZ3RoKTsKLSAg
ICBpbnQgYWN0dWFsTGluZU51bWJlcjsKLSAgICBtX2RlYnVnU2VydmVyLnNldEJyZWFrcG9pbnQo
c291cmNlU3RyaW5nLCBTY3JpcHRCcmVha3BvaW50KGxpbmVOdW1iZXIsIDAsIGNvbmRpdGlvblN0
cmluZyksICZsaW5lTnVtYmVyLCAmYWN0dWFsTGluZU51bWJlcik7Ci19Ci0KLXZvaWQgSmF2YVNj
cmlwdERlYnVnZ2VyQmxhY2tCZXJyeTo6dXBkYXRlQnJlYWtwb2ludChjb25zdCB1bnNpZ25lZCBz
aG9ydCogdXJsLCB1bnNpZ25lZCB1cmxMZW5ndGgsIGludCBsaW5lTnVtYmVyLCBjb25zdCB1bnNp
Z25lZCBzaG9ydCogY29uZGl0aW9uLCB1bnNpZ25lZCBjb25kaXRpb25MZW5ndGgpCi17Ci0gICAg
aWYgKCF1cmwgfHwgIXVybExlbmd0aCkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghbV9jdXJy
ZW50Q2FsbEZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBTdHJpbmcgc291cmNlU3RyaW5n
KHVybCwgdXJsTGVuZ3RoKTsKLSAgICBTdHJpbmcgY29uZGl0aW9uU3RyaW5nKGNvbmRpdGlvbiwg
Y29uZGl0aW9uTGVuZ3RoKTsKLSAgICBpbnQgYWN0dWFsTGluZU51bWJlcjsKLSAgICBtX2RlYnVn
U2VydmVyLnNldEJyZWFrcG9pbnQoc291cmNlU3RyaW5nLCBTY3JpcHRCcmVha3BvaW50KGxpbmVO
dW1iZXIsIDAsIGNvbmRpdGlvblN0cmluZyksICZsaW5lTnVtYmVyLCAmYWN0dWFsTGluZU51bWJl
cik7Ci19Ci0KLQotdm9pZCBKYXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5OjpyZW1vdmVCcmVh
a3BvaW50KGNvbnN0IHVuc2lnbmVkIHNob3J0KiB1cmwsIHVuc2lnbmVkIHVybExlbmd0aCwgaW50
IGxpbmVOdW1iZXIpCi17Ci0gICAgaWYgKCF1cmwgfHwgIXVybExlbmd0aCkKLSAgICAgICAgcmV0
dXJuOwotICAgIGlmICghbV9jdXJyZW50Q2FsbEZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBTdHJpbmcgc291cmNlU3RyaW5nKHVybCwgdXJsTGVuZ3RoKTsKLSAgICBzb3VyY2VTdHJpbmcg
Kz0gIjoiICsgbGluZU51bWJlcjsKLSAgICBtX2RlYnVnU2VydmVyLnJlbW92ZUJyZWFrcG9pbnQo
c291cmNlU3RyaW5nKTsKLX0KLQotCi1ib29sIEphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnk6
OnBhdXNlT25FeGNlcHRpb25zKCkKLXsKLSAgICByZXR1cm4gbV9kZWJ1Z1NlcnZlci5wYXVzZU9u
RXhjZXB0aW9uc1N0YXRlKCkgPT0gU2NyaXB0RGVidWdTZXJ2ZXI6OlBhdXNlT25BbGxFeGNlcHRp
b25zOwotfQotCi12b2lkIEphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnk6OnNldFBhdXNlT25F
eGNlcHRpb25zKGJvb2wgcGF1c2UpCi17Ci0gICAgbV9kZWJ1Z1NlcnZlci5zZXRQYXVzZU9uRXhj
ZXB0aW9uc1N0YXRlKHBhdXNlID8gU2NyaXB0RGVidWdTZXJ2ZXI6OlBhdXNlT25BbGxFeGNlcHRp
b25zIDogU2NyaXB0RGVidWdTZXJ2ZXI6OkRvbnRQYXVzZU9uRXhjZXB0aW9ucyk7Ci19Ci0KLXZv
aWQgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTo6cGF1c2VJbkRlYnVnZ2VyKCkKLXsKLSAg
ICBtX2RlYnVnU2VydmVyLnNldFBhdXNlT25OZXh0U3RhdGVtZW50KHRydWUpOwotfQotCi12b2lk
IEphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnk6OnJlc3VtZURlYnVnZ2VyKCkKLXsKLSAgICBt
X2RlYnVnU2VydmVyLmNvbnRpbnVlUHJvZ3JhbSgpOwotfQotCi12b2lkIEphdmFTY3JpcHREZWJ1
Z2dlckJsYWNrQmVycnk6OnN0ZXBPdmVyU3RhdGVtZW50SW5EZWJ1Z2dlcigpCi17Ci0gICAgbV9k
ZWJ1Z1NlcnZlci5zdGVwT3ZlclN0YXRlbWVudCgpOwotfQotCi12b2lkIEphdmFTY3JpcHREZWJ1
Z2dlckJsYWNrQmVycnk6OnN0ZXBJbnRvU3RhdGVtZW50SW5EZWJ1Z2dlcigpCi17Ci0gICAgbV9k
ZWJ1Z1NlcnZlci5zdGVwSW50b1N0YXRlbWVudCgpOwotfQotCi12b2lkIEphdmFTY3JpcHREZWJ1
Z2dlckJsYWNrQmVycnk6OnN0ZXBPdXRPZkZ1bmN0aW9uSW5EZWJ1Z2dlcigpCi17Ci0gICAgbV9k
ZWJ1Z1NlcnZlci5zdGVwT3V0T2ZGdW5jdGlvbigpOwotfQotCi12b2lkIEphdmFTY3JpcHREZWJ1
Z2dlckJsYWNrQmVycnk6OmRpZFBhcnNlU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlSUQsIGNv
bnN0IFNjcmlwdCYgc2NyaXB0KQotewotICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5q
YXZhc2NyaXB0U291cmNlUGFyc2VkKHNjcmlwdC51cmwuY2hhcmFjdGVycygpLCBzY3JpcHQudXJs
Lmxlbmd0aCgpLCBzY3JpcHQuc291cmNlLmNoYXJhY3RlcnMoKSwgc2NyaXB0LnNvdXJjZS5sZW5n
dGgoKSk7Ci19Ci0KLXZvaWQgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTo6ZmFpbGVkVG9Q
YXJzZVNvdXJjZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBkYXRhLCBpbnQgZmly
c3RMaW5lLCBpbnQgZXJyb3JMaW5lLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKLXsKLSAg
ICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+amF2YXNjcmlwdFBhcnNpbmdGYWlsZWQodXJs
LmltcGwoKS0+Y2hhcmFjdGVycygpLCB1cmwubGVuZ3RoKCksIGVycm9yTWVzc2FnZS5pbXBsKCkt
PmNoYXJhY3RlcnMoKSwgZXJyb3JNZXNzYWdlLmxlbmd0aCgpLCBlcnJvckxpbmUpOwotfQotCi12
b2lkIEphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnk6OmRpZFBhdXNlKFNjcmlwdFN0YXRlKiwg
Y29uc3QgU2NyaXB0VmFsdWUmIGNhbGxGcmFtZXMsIGNvbnN0IFNjcmlwdFZhbHVlJiBleGNlcHRp
b24pCi17Ci0gICAgU3RyaW5nIHN0YWNrczsKLQotICAgIG1fY3VycmVudENhbGxGcmFtZSA9IG1f
ZGVidWdTZXJ2ZXIuY3VycmVudENhbGxGcmFtZSgpOwotICAgIEphdmFTY3JpcHRDYWxsRnJhbWUq
IGZyYW1lID0gbV9jdXJyZW50Q2FsbEZyYW1lOwotCi0gICAgd2hpbGUgKGZyYW1lICYmIGZyYW1l
LT5pc1ZhbGlkKCkpIHsKLSAgICAgICAgSlNDOjpTb3VyY2VQcm92aWRlciogcHJvdmlkZXIgPSBy
ZWludGVycHJldF9jYXN0PEpTQzo6U291cmNlUHJvdmlkZXIqPihmcmFtZS0+c291cmNlSUQoKSk7
Ci0gICAgICAgIFN0cmluZyB1cmwocHJvdmlkZXItPnVybCgpLmNoYXJhY3RlcnMoKSwgcHJvdmlk
ZXItPnVybCgpLmxlbmd0aCgpKTsKLSAgICAgICAgaWYgKHVybC5sZW5ndGgoKSkKLSAgICAgICAg
ICAgIHN0YWNrcyArPSB1cmw7Ci0gICAgICAgIHN0YWNrcyArPSAiOiAiOwotCi0gICAgICAgIGlm
IChmcmFtZS0+dHlwZSgpID09IEpTQzo6RGVidWdnZXJDYWxsRnJhbWU6OkZ1bmN0aW9uVHlwZSkg
ewotICAgICAgICAgICAgU3RyaW5nIG5hbWUgPSBmcmFtZS0+ZnVuY3Rpb25OYW1lKCk7Ci0gICAg
ICAgICAgICBpZiAobmFtZS5sZW5ndGgoKSkKLSAgICAgICAgICAgICAgICBzdGFja3MgKz0gbmFt
ZTsKLSAgICAgICAgfQotICAgICAgICBzdGFja3MgKz0gIigpOiAiOwotCi0gICAgICAgIFN0cmlu
ZyBsaW5lID0gU3RyaW5nOjpudW1iZXIoZnJhbWUtPmxpbmUoKSk7Ci0gICAgICAgIHN0YWNrcyAr
PSBsaW5lICsgIlxuIjsKLQotICAgICAgICBmcmFtZSA9IGZyYW1lLT5jYWxsZXIoKTsKLSAgICB9
Ci0KLSAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+amF2YXNjcmlwdFBhdXNlZChyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHVuc2lnbmVkIHNob3J0Kj4oc3RhY2tzLmNoYXJhY3RlcnMoKSks
IHN0YWNrcy5sZW5ndGgoKSk7Ci19Ci0KLXZvaWQgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJy
eTo6ZGlkQ29udGludWUoKQotewotICAgIG1fY3VycmVudENhbGxGcmFtZSA9IDA7Ci0gICAgbV93
ZWJQYWdlUHJpdmF0ZS0+bV9jbGllbnQtPmphdmFzY3JpcHRDb250aW51ZWQoKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdH
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
SmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0phdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMmY1MTFiMmEzZmFiZTVhM2ZhNGZkNDQzZWIyOGVmZDlkZGY0
ZWNiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSmF2YVNjcmlwdERlYnVnZ2VyQmxh
Y2tCZXJyeS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8K
LSAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiBM
aWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCi0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaWZuZGVmIEphdmFT
Y3JpcHREZWJ1Z2dlckJsYWNrQmVycnlfaAotI2RlZmluZSBKYXZhU2NyaXB0RGVidWdnZXJCbGFj
a0JlcnJ5X2gKLQotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotCi0jaW5jbHVkZSAi
U2NyaXB0RGVidWdMaXN0ZW5lci5oIgotCi1uYW1lc3BhY2UgQmxhY2tCZXJyeSB7Ci1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLWNsYXNzIFdlYlBhZ2VQcml2YXRlOwotfQotfQotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIEphdmFTY3JpcHRDYWxsRnJhbWU7Ci1jbGFzcyBQYWdlU2NyaXB0RGVi
dWdTZXJ2ZXI7Ci0KLWNsYXNzIEphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkgOiBwdWJsaWMg
U2NyaXB0RGVidWdMaXN0ZW5lciB7Ci1wdWJsaWM6Ci0gICAgSmF2YVNjcmlwdERlYnVnZ2VyQmxh
Y2tCZXJyeShCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKik7Ci0gICAgfkphdmFT
Y3JpcHREZWJ1Z2dlckJsYWNrQmVycnkoKTsKLQotICAgIHZvaWQgYWRkQnJlYWtwb2ludChjb25z
dCB1bnNpZ25lZCBzaG9ydCogdXJsLCB1bnNpZ25lZCB1cmxMZW5ndGgsIGludCBsaW5lTnVtYmVy
LCBjb25zdCB1bnNpZ25lZCBzaG9ydCogY29uZGl0aW9uLCB1bnNpZ25lZCBjb25kaXRpb25MZW5n
dGgpOwotICAgIHZvaWQgdXBkYXRlQnJlYWtwb2ludChjb25zdCB1bnNpZ25lZCBzaG9ydCogdXJs
LCB1bnNpZ25lZCB1cmxMZW5ndGgsIGludCBsaW5lTnVtYmVyLCBjb25zdCB1bnNpZ25lZCBzaG9y
dCogY29uZGl0aW9uLCB1bnNpZ25lZCBjb25kaXRpb25MZW5ndGgpOwotICAgIHZvaWQgcmVtb3Zl
QnJlYWtwb2ludChjb25zdCB1bnNpZ25lZCBzaG9ydCogdXJsLCB1bnNpZ25lZCB1cmxMZW5ndGgs
IGludCBsaW5lTnVtYmVyKTsKLQotICAgIGJvb2wgcGF1c2VPbkV4Y2VwdGlvbnMoKTsKLSAgICB2
b2lkIHNldFBhdXNlT25FeGNlcHRpb25zKGJvb2wpOwotCi0gICAgdm9pZCBwYXVzZUluRGVidWdn
ZXIoKTsKLSAgICB2b2lkIHJlc3VtZURlYnVnZ2VyKCk7Ci0KLSAgICB2b2lkIHN0ZXBPdmVyU3Rh
dGVtZW50SW5EZWJ1Z2dlcigpOwotICAgIHZvaWQgc3RlcEludG9TdGF0ZW1lbnRJbkRlYnVnZ2Vy
KCk7Ci0gICAgdm9pZCBzdGVwT3V0T2ZGdW5jdGlvbkluRGVidWdnZXIoKTsKLQotICAgIC8vIEZy
b20gU2NyaXB0RGVidWdMaXN0ZW5lcgotICAgIHZpcnR1YWwgdm9pZCBkaWRQYXJzZVNvdXJjZShj
b25zdCBTdHJpbmcmICBzb3VyY2VJRCwgY29uc3QgU2NyaXB0Jik7Ci0gICAgdmlydHVhbCB2b2lk
IGZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZGF0
YSwgaW50IGZpcnN0TGluZSwgaW50IGVycm9yTGluZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3Nh
Z2UpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRQYXVzZShTY3JpcHRTdGF0ZSosIGNvbnN0IFNjcmlw
dFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBTY3JpcHRWYWx1ZSYgZXhjZXB0aW9uKTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoKTsKLQotcHJvdGVjdGVkOgotICAgIHZvaWQgc3RhcnQo
KTsKLSAgICB2b2lkIHN0b3AoKTsKLQotcHJpdmF0ZToKLSAgICBCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlBhZ2VQcml2YXRlKiBtX3dlYlBhZ2VQcml2YXRlOwotICAgIFBhZ2VTY3JpcHREZWJ1Z1Nl
cnZlciYgbV9kZWJ1Z1NlcnZlcjsKLQotICAgIEphdmFTY3JpcHRDYWxsRnJhbWUqIG1fY3VycmVu
dENhbGxGcmFtZTsKLX07Ci0KLX0gLy8gV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFT
Q1JJUFRfREVCVUdHRVIpCi0jZW5kaWYgLy8gSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeV9o
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171563</attachid>
            <date>2012-10-30 18:43:22 -0700</date>
            <delta_ts>2012-10-30 19:50:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100724-20121031094116.patch</filename>
            <type>text/plain</type>
            <size>17514</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyOTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBkNzcxMThiZDYzMjRmN2Uy
NTNjOTkyNjY0NWNmYzg1ZWNiMTk2MGIuLjVjZmY3ODVjOWIzYWQ4MjZhNjdmNzllYzUyMzU0MzRl
NTgxODY5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMzAgIFBldGVyIFdh
bmcgIDxwZXRlci53YW5nQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBbQmxhY2tCZXJy
eV0gQ2xlYW4gdGhlIGNvZGUgb2YgIkphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkiCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA3MjQKKworICAg
ICAgICBSZXZpZXdlZCBieSBSb2IgQnVpcy4KKworICAgICAgICBSZW1vdmUgdGhlIGNvZGUgb2Yg
SmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeS4KKworICAgICAgICAqIFBsYXRmb3JtQmxhY2tC
ZXJyeS5jbWFrZToKKwogMjAxMi0xMC0yOCAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIHVuc3VwcG9ydGVkIE9TIGFuZCBYY29kZSB2
ZXJzaW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IDExNTgwZjQ2YjQwNTIw
NDViNDhkZGI2Y2E1NTk5M2IwZDg2ZGQwNGUuLmFhZWY1YzY3NTFiOGQ2OWU1YjRjYzVmOGIzYmEw
MGZjM2Q1N2NmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEyLTEwLTMwICBQZXRlciBXYW5nICA8cGV0ZXIud2FuZ0B0b3JjaG1vYmlsZS5jb20u
Y24+CisKKyAgICAgICAgW0JsYWNrQmVycnldIENsZWFuIHRoZSBjb2RlIG9mICJKYXZhU2NyaXB0
RGVidWdnZXJCbGFja0JlcnJ5IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAwNzI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUm9iIEJ1aXMuCisKKyAg
ICAgICAgUmVtb3ZlIHRoZSBjb2RlIG9mIEphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkuCisK
KyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgICogQXBpL1dlYlBhZ2UuaDoKKyAg
ICAgICAgKiBBcGkvV2ViUGFnZV9wLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YlBhZ2VQcml2YXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9KYXZhU2NyaXB0RGVidWdn
ZXJCbGFja0JlcnJ5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9KYXZh
U2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5Lmg6IFJlbW92ZWQuCisKIDIwMTItMTAtMjkgIFJvYiBC
dWlzICA8cmJ1aXNAcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gU2ltcGxpZnkgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VNYW5hZ2VyOjppbnN0YW5jZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
QmxhY2tCZXJyeS5jbWFrZQppbmRleCAyYTVhZjc3YzZiMGU5Zjg5MzFjOGRjMWU3MThhY2RjOWY3
YTFiNjlmLi5jNjJiYzE3YTM2NGU4ZjBkZmEwNDQ5NmIxMDJmNjRiYzhkYjgwOTk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtMTEyLDcgKzExMiw2IEBAIExJU1Qo
QVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9HZW9s
b2NhdGlvbkNsaWVudEJsYWNrQmVycnkuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9JY29uRGF0YWJhc2VDbGllbnRCbGFja0JlcnJ5LmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKLSAgICBibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0phdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkuY3BwCiAgICAgYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9OZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnkuY3BwCiAgICAg
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcAog
ICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvUGFnZVBvcHVwQmxhY2tCZXJyeS5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCmluZGV4IGUyMjc4ODRkMTNiNDE5
YzAyMzc3NGU5Y2E5YTRlNTA2MjdmNjk2ZTEuLjgxNmJjYmJmYmI4ZWIyYzI4OTFhZGMwM2U1NGNm
OTdlY2VhY2VlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcApA
QCAtODEsNyArODEsNiBAQAogI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJJbnNwZWN0b3JPdmVy
bGF5LmgiCi0jaW5jbHVkZSAiSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeS5oIgogI2luY2x1
ZGUgIkphdmFTY3JpcHRWYXJpYW50X3AuaCIKICNpbmNsdWRlICJMYXllcldlYktpdFRocmVhZC5o
IgogI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCkBAIC00ODg4LDEwOCArNDg4Nyw2IEBAIHZvaWQg
V2ViUGFnZTo6cnVuTGF5b3V0VGVzdHMoKQogI2VuZGlmCiB9CiAKLWJvb2wgV2ViUGFnZTo6ZW5h
YmxlU2NyaXB0RGVidWdnZXIoKQotewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQot
ICAgIGlmIChkLT5tX3NjcmlwdERlYnVnZ2VyKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAg
IGQtPm1fc2NyaXB0RGVidWdnZXIgPSBhZG9wdFB0cihuZXcgSmF2YVNjcmlwdERlYnVnZ2VyQmxh
Y2tCZXJyeSh0aGlzLT5kKSk7Ci0KLSAgICByZXR1cm4gISFkLT5tX3NjcmlwdERlYnVnZ2VyOwot
I2VuZGlmCi19Ci0KLWJvb2wgV2ViUGFnZTo6ZGlzYWJsZVNjcmlwdERlYnVnZ2VyKCkKLXsKLSNp
ZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAoIWQtPm1fc2NyaXB0RGVidWdn
ZXIpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgZC0+bV9zY3JpcHREZWJ1Z2dlci5jbGVh
cigpOwotICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi19Ci0KLXZvaWQgV2ViUGFnZTo6YWRkQnJl
YWtwb2ludChjb25zdCB1bnNpZ25lZCBzaG9ydCogdXJsLCB1bnNpZ25lZCB1cmxMZW5ndGgsIGlu
dCBsaW5lTnVtYmVyLCBjb25zdCB1bnNpZ25lZCBzaG9ydCogY29uZGl0aW9uLCB1bnNpZ25lZCBj
b25kaXRpb25MZW5ndGgpCi17Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAg
aWYgKGQtPm1fc2NyaXB0RGVidWdnZXIpCi0gICAgICAgIGQtPm1fc2NyaXB0RGVidWdnZXItPmFk
ZEJyZWFrcG9pbnQodXJsLCB1cmxMZW5ndGgsIGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgY29uZGl0
aW9uTGVuZ3RoKTsKLSNlbmRpZgotfQotCi12b2lkIFdlYlBhZ2U6OnVwZGF0ZUJyZWFrcG9pbnQo
Y29uc3QgdW5zaWduZWQgc2hvcnQqIHVybCwgdW5zaWduZWQgdXJsTGVuZ3RoLCBpbnQgbGluZU51
bWJlciwgY29uc3QgdW5zaWduZWQgc2hvcnQqIGNvbmRpdGlvbiwgdW5zaWduZWQgY29uZGl0aW9u
TGVuZ3RoKQotewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIGlmIChkLT5t
X3NjcmlwdERlYnVnZ2VyKQotICAgICAgICBkLT5tX3NjcmlwdERlYnVnZ2VyLT51cGRhdGVCcmVh
a3BvaW50KHVybCwgdXJsTGVuZ3RoLCBsaW5lTnVtYmVyLCBjb25kaXRpb24sIGNvbmRpdGlvbkxl
bmd0aCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBXZWJQYWdlOjpyZW1vdmVCcmVha3BvaW50KGNvbnN0
IHVuc2lnbmVkIHNob3J0KiB1cmwsIHVuc2lnbmVkIHVybExlbmd0aCwgaW50IGxpbmVOdW1iZXIp
Ci17Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgaWYgKGQtPm1fc2NyaXB0
RGVidWdnZXIpCi0gICAgICAgIGQtPm1fc2NyaXB0RGVidWdnZXItPnJlbW92ZUJyZWFrcG9pbnQo
dXJsLCB1cmxMZW5ndGgsIGxpbmVOdW1iZXIpOwotI2VuZGlmCi19Ci0KLWJvb2wgV2ViUGFnZTo6
cGF1c2VPbkV4Y2VwdGlvbnMoKQotewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQot
ICAgIHJldHVybiBkLT5tX3NjcmlwdERlYnVnZ2VyID8gZC0+bV9zY3JpcHREZWJ1Z2dlci0+cGF1
c2VPbkV4Y2VwdGlvbnMoKSA6IGZhbHNlOwotI2VuZGlmCi19Ci0KLXZvaWQgV2ViUGFnZTo6c2V0
UGF1c2VPbkV4Y2VwdGlvbnMoYm9vbCBwYXVzZSkKLXsKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9E
RUJVR0dFUikKLSAgICBpZiAoZC0+bV9zY3JpcHREZWJ1Z2dlcikKLSAgICAgICAgZC0+bV9zY3Jp
cHREZWJ1Z2dlci0+c2V0UGF1c2VPbkV4Y2VwdGlvbnMocGF1c2UpOwotI2VuZGlmCi19Ci0KLXZv
aWQgV2ViUGFnZTo6cGF1c2VJbkRlYnVnZ2VyKCkKLXsKLSNpZiBFTkFCTEUoSkFWQVNDUklQVF9E
RUJVR0dFUikKLSAgICBpZiAoZC0+bV9zY3JpcHREZWJ1Z2dlcikKLSAgICAgICAgZC0+bV9zY3Jp
cHREZWJ1Z2dlci0+cGF1c2VJbkRlYnVnZ2VyKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBXZWJQYWdl
OjpyZXN1bWVEZWJ1Z2dlcigpCi17Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0g
ICAgaWYgKGQtPm1fc2NyaXB0RGVidWdnZXIpCi0gICAgICAgIGQtPm1fc2NyaXB0RGVidWdnZXIt
PnJlc3VtZURlYnVnZ2VyKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBXZWJQYWdlOjpzdGVwT3ZlclN0
YXRlbWVudEluRGVidWdnZXIoKQotewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQot
ICAgIGlmIChkLT5tX3NjcmlwdERlYnVnZ2VyKQotICAgICAgICBkLT5tX3NjcmlwdERlYnVnZ2Vy
LT5zdGVwT3ZlclN0YXRlbWVudEluRGVidWdnZXIoKTsKLSNlbmRpZgotfQotCi12b2lkIFdlYlBh
Z2U6OnN0ZXBJbnRvU3RhdGVtZW50SW5EZWJ1Z2dlcigpCi17Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJ
UFRfREVCVUdHRVIpCi0gICAgaWYgKGQtPm1fc2NyaXB0RGVidWdnZXIpCi0gICAgICAgIGQtPm1f
c2NyaXB0RGVidWdnZXItPnN0ZXBJbnRvU3RhdGVtZW50SW5EZWJ1Z2dlcigpOwotI2VuZGlmCi19
Ci0KLXZvaWQgV2ViUGFnZTo6c3RlcE91dE9mRnVuY3Rpb25JbkRlYnVnZ2VyKCkKLXsKLSNpZiBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICBpZiAoZC0+bV9zY3JpcHREZWJ1Z2dlcikK
LSAgICAgICAgZC0+bV9zY3JpcHREZWJ1Z2dlci0+c3RlcE91dE9mRnVuY3Rpb25JbkRlYnVnZ2Vy
KCk7Ci0jZW5kaWYKLX0KLQogdW5zaWduZWQgV2ViUGFnZTo6dGltZW91dEZvckphdmFTY3JpcHRF
eGVjdXRpb24oKSBjb25zdAogewogICAgIHJldHVybiBTZXR0aW5nczo6dGltZW91dEZvckphdmFT
Y3JpcHRFeGVjdXRpb24oZC0+bV9wYWdlLT5ncm91cE5hbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9BcGkvV2ViUGFnZS5oCmluZGV4IGEyNjI5MjcxNzU4OTZiYjA4ZTg5MTkzOTRkMjgzYmQx
Njk5MjQ1NjMuLmFlNTlkOGY3YTVlOTkxYWZlNzJmNTM5MTEzZjI4OGYyZjQxNjg3NmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5oCkBAIC0yMjgsMjcgKzIyOCw5IEBAIHB1
YmxpYzoKICAgICAvLyBDYXNlIHNlbnNpdGl2aXR5LCB3cmFwcGluZywgYW5kIGhpZ2hsaWdodGlu
ZyBhbGwgbWF0Y2hlcyBhcmUgYWxzbyB0b2dnbGVhYmxlLgogICAgIGJvb2wgZmluZE5leHRTdHJp
bmcoY29uc3QgY2hhciosIGJvb2wgZm9yd2FyZCwgYm9vbCBjYXNlU2Vuc2l0aXZlLCBib29sIHdy
YXAsIGJvb2wgaGlnaGxpZ2h0QWxsTWF0Y2hlcyk7CiAKLSAgICAvLyBKYXZhU2NyaXB0RGVidWdn
ZXIgaW50ZXJmYWNlLgotICAgIGJvb2wgZW5hYmxlU2NyaXB0RGVidWdnZXIoKTsKLSAgICBib29s
IGRpc2FibGVTY3JpcHREZWJ1Z2dlcigpOwotCiAgICAgSlNDb250ZXh0UmVmIHNjcmlwdENvbnRl
eHQoKSBjb25zdDsKICAgICBKU1ZhbHVlUmVmIHdpbmRvd09iamVjdCgpIGNvbnN0OwogCi0gICAg
dm9pZCBhZGRCcmVha3BvaW50KGNvbnN0IHVuc2lnbmVkIHNob3J0KiB1cmwsIHVuc2lnbmVkIHVy
bExlbmd0aCwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IHVuc2lnbmVkIHNob3J0KiBjb25kaXRpb24s
IHVuc2lnbmVkIGNvbmRpdGlvbkxlbmd0aCk7Ci0gICAgdm9pZCB1cGRhdGVCcmVha3BvaW50KGNv
bnN0IHVuc2lnbmVkIHNob3J0KiB1cmwsIHVuc2lnbmVkIHVybExlbmd0aCwgaW50IGxpbmVOdW1i
ZXIsIGNvbnN0IHVuc2lnbmVkIHNob3J0KiBjb25kaXRpb24sIHVuc2lnbmVkIGNvbmRpdGlvbkxl
bmd0aCk7Ci0gICAgdm9pZCByZW1vdmVCcmVha3BvaW50KGNvbnN0IHVuc2lnbmVkIHNob3J0KiB1
cmwsIHVuc2lnbmVkIHVybExlbmd0aCwgaW50IGxpbmVOdW1iZXIpOwotCi0gICAgYm9vbCBwYXVz
ZU9uRXhjZXB0aW9ucygpOwotICAgIHZvaWQgc2V0UGF1c2VPbkV4Y2VwdGlvbnMoYm9vbCk7Ci0K
LSAgICB2b2lkIHBhdXNlSW5EZWJ1Z2dlcigpOwotICAgIHZvaWQgcmVzdW1lRGVidWdnZXIoKTsK
LQotICAgIHZvaWQgc3RlcE92ZXJTdGF0ZW1lbnRJbkRlYnVnZ2VyKCk7Ci0gICAgdm9pZCBzdGVw
SW50b1N0YXRlbWVudEluRGVidWdnZXIoKTsKLSAgICB2b2lkIHN0ZXBPdXRPZkZ1bmN0aW9uSW5E
ZWJ1Z2dlcigpOwotCiAgICAgdW5zaWduZWQgdGltZW91dEZvckphdmFTY3JpcHRFeGVjdXRpb24o
KSBjb25zdDsKICAgICB2b2lkIHNldFRpbWVvdXRGb3JKYXZhU2NyaXB0RXhlY3V0aW9uKHVuc2ln
bmVkIG1zKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlX3AuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZV9wLmgKaW5kZXgg
ZTk3ODA4ZjFiZmUwYjhiNTAxOWNhZmMxZmNhZDJiNzI5Y2EwOGRjZS4uZGVlMDg0OTUyMTBjYWEx
ZTgzM2E0Y2Q2ZWVkMjM2YmExYTEyNDJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9XZWJQYWdlX3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBp
L1dlYlBhZ2VfcC5oCkBAIC01NSw3ICs1NSw2IEBAIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFt
ZTsKIGNsYXNzIEdlb2xvY2F0aW9uQ2xpZW50QmxhY2tCZXJyeTsKIGNsYXNzIEdyYXBoaWNzTGF5
ZXJCbGFja0JlcnJ5OwotY2xhc3MgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTsKIGNsYXNz
IExheWVyV2ViS2l0VGhyZWFkOwogY2xhc3MgTm9kZTsKIGNsYXNzIFBhZ2U7CkBAIC00ODAsMTAg
KzQ3OSw2IEBAIHB1YmxpYzoKICAgICBPd25QdHI8V2ViVGFwSGlnaGxpZ2h0PiBtX3RhcEhpZ2hs
aWdodDsKICAgICBPd25QdHI8U2VsZWN0aW9uT3ZlcmxheT4gbV9zZWxlY3Rpb25PdmVybGF5Owog
Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgT3duUHRyPFdlYkNvcmU6Okph
dmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnk+IG1fc2NyaXB0RGVidWdnZXI7Ci0jZW5kaWYKLQog
ICAgIGJvb2wgbV92aXNpYmxlOwogICAgIEFjdGl2YXRpb25TdGF0ZVR5cGUgbV9hY3RpdmF0aW9u
U3RhdGU7CiAgICAgYm9vbCBtX3Nob3VsZFJlc2V0VGlsZXNXaGVuU2hvd247CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSmF2YVNjcmlwdERlYnVn
Z2VyQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBv
cnQvSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGVhNGM0MjY2ZjY2NDAxZTAyZWQ1MzFjMjY1MzI3YWNlZmY3YWY2ZDkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0phdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTc5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDkgVG9yY2ggTW9iaWxlIEluYy4gaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQotICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0jaW5jbHVkZSAiSmF2YVNj
cmlwdERlYnVnZ2VyQmxhY2tCZXJyeS5oIgotCi0jaW5jbHVkZSAiSmF2YVNjcmlwdENhbGxGcmFt
ZS5oIgotI2luY2x1ZGUgIlBhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oIgotI2luY2x1ZGUgIlNjcmlw
dEJyZWFrcG9pbnQuaCIKLSNpbmNsdWRlICJTb3VyY2VDb2RlLmgiCi0jaW5jbHVkZSAiV2ViUGFn
ZV9wLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTo6SmF2YVNjcmlwdERlYnVnZ2Vy
QmxhY2tCZXJyeShCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKiB3ZWJQYWdlUHJp
dmF0ZSkKLSAgICA6IG1fd2ViUGFnZVByaXZhdGUod2ViUGFnZVByaXZhdGUpCi0gICAgLCBtX2Rl
YnVnU2VydmVyKFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6c2hhcmVkKCkpCi17Ci0gICAgc3RhcnQo
KTsKLX0KLQotSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTo6fkphdmFTY3JpcHREZWJ1Z2dl
ckJsYWNrQmVycnkoKQotewotICAgIHN0b3AoKTsKLX0KLQotdm9pZCBKYXZhU2NyaXB0RGVidWdn
ZXJCbGFja0JlcnJ5OjpzdGFydCgpCi17Ci0gICAgbV9kZWJ1Z1NlcnZlci5hZGRMaXN0ZW5lcih0
aGlzLCBtX3dlYlBhZ2VQcml2YXRlLT5tX3BhZ2UpOwotfQotCi12b2lkIEphdmFTY3JpcHREZWJ1
Z2dlckJsYWNrQmVycnk6OnN0b3AoKQotewotICAgIG1fZGVidWdTZXJ2ZXIucmVtb3ZlTGlzdGVu
ZXIodGhpcywgbV93ZWJQYWdlUHJpdmF0ZS0+bV9wYWdlKTsKLX0KLQotdm9pZCBKYXZhU2NyaXB0
RGVidWdnZXJCbGFja0JlcnJ5OjphZGRCcmVha3BvaW50KGNvbnN0IHVuc2lnbmVkIHNob3J0KiB1
cmwsIHVuc2lnbmVkIHVybExlbmd0aCwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IHVuc2lnbmVkIHNo
b3J0KiBjb25kaXRpb24sIHVuc2lnbmVkIGNvbmRpdGlvbkxlbmd0aCkKLXsKLSAgICBpZiAoIXVy
bCB8fCAhdXJsTGVuZ3RoKQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFtX2N1cnJlbnRDYWxs
RnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFN0cmluZyBzb3VyY2VTdHJpbmcodXJsLCB1
cmxMZW5ndGgpOwotICAgIFN0cmluZyBjb25kaXRpb25TdHJpbmcoY29uZGl0aW9uLCBjb25kaXRp
b25MZW5ndGgpOwotICAgIGludCBhY3R1YWxMaW5lTnVtYmVyOwotICAgIG1fZGVidWdTZXJ2ZXIu
c2V0QnJlYWtwb2ludChzb3VyY2VTdHJpbmcsIFNjcmlwdEJyZWFrcG9pbnQobGluZU51bWJlciwg
MCwgY29uZGl0aW9uU3RyaW5nKSwgJmxpbmVOdW1iZXIsICZhY3R1YWxMaW5lTnVtYmVyKTsKLX0K
LQotdm9pZCBKYXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5Ojp1cGRhdGVCcmVha3BvaW50KGNv
bnN0IHVuc2lnbmVkIHNob3J0KiB1cmwsIHVuc2lnbmVkIHVybExlbmd0aCwgaW50IGxpbmVOdW1i
ZXIsIGNvbnN0IHVuc2lnbmVkIHNob3J0KiBjb25kaXRpb24sIHVuc2lnbmVkIGNvbmRpdGlvbkxl
bmd0aCkKLXsKLSAgICBpZiAoIXVybCB8fCAhdXJsTGVuZ3RoKQotICAgICAgICByZXR1cm47Ci0g
ICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFN0cmlu
ZyBzb3VyY2VTdHJpbmcodXJsLCB1cmxMZW5ndGgpOwotICAgIFN0cmluZyBjb25kaXRpb25TdHJp
bmcoY29uZGl0aW9uLCBjb25kaXRpb25MZW5ndGgpOwotICAgIGludCBhY3R1YWxMaW5lTnVtYmVy
OwotICAgIG1fZGVidWdTZXJ2ZXIuc2V0QnJlYWtwb2ludChzb3VyY2VTdHJpbmcsIFNjcmlwdEJy
ZWFrcG9pbnQobGluZU51bWJlciwgMCwgY29uZGl0aW9uU3RyaW5nKSwgJmxpbmVOdW1iZXIsICZh
Y3R1YWxMaW5lTnVtYmVyKTsKLX0KLQotCi12b2lkIEphdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVy
cnk6OnJlbW92ZUJyZWFrcG9pbnQoY29uc3QgdW5zaWduZWQgc2hvcnQqIHVybCwgdW5zaWduZWQg
dXJsTGVuZ3RoLCBpbnQgbGluZU51bWJlcikKLXsKLSAgICBpZiAoIXVybCB8fCAhdXJsTGVuZ3Ro
KQotICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFtX2N1cnJlbnRDYWxsRnJhbWUpCi0gICAgICAg
IHJldHVybjsKLQotICAgIFN0cmluZyBzb3VyY2VTdHJpbmcodXJsLCB1cmxMZW5ndGgpOwotICAg
IHNvdXJjZVN0cmluZyArPSAiOiIgKyBsaW5lTnVtYmVyOwotICAgIG1fZGVidWdTZXJ2ZXIucmVt
b3ZlQnJlYWtwb2ludChzb3VyY2VTdHJpbmcpOwotfQotCi0KLWJvb2wgSmF2YVNjcmlwdERlYnVn
Z2VyQmxhY2tCZXJyeTo6cGF1c2VPbkV4Y2VwdGlvbnMoKQotewotICAgIHJldHVybiBtX2RlYnVn
U2VydmVyLnBhdXNlT25FeGNlcHRpb25zU3RhdGUoKSA9PSBTY3JpcHREZWJ1Z1NlcnZlcjo6UGF1
c2VPbkFsbEV4Y2VwdGlvbnM7Ci19Ci0KLXZvaWQgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJy
eTo6c2V0UGF1c2VPbkV4Y2VwdGlvbnMoYm9vbCBwYXVzZSkKLXsKLSAgICBtX2RlYnVnU2VydmVy
LnNldFBhdXNlT25FeGNlcHRpb25zU3RhdGUocGF1c2UgPyBTY3JpcHREZWJ1Z1NlcnZlcjo6UGF1
c2VPbkFsbEV4Y2VwdGlvbnMgOiBTY3JpcHREZWJ1Z1NlcnZlcjo6RG9udFBhdXNlT25FeGNlcHRp
b25zKTsKLX0KLQotdm9pZCBKYXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5OjpwYXVzZUluRGVi
dWdnZXIoKQotewotICAgIG1fZGVidWdTZXJ2ZXIuc2V0UGF1c2VPbk5leHRTdGF0ZW1lbnQodHJ1
ZSk7Ci19Ci0KLXZvaWQgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTo6cmVzdW1lRGVidWdn
ZXIoKQotewotICAgIG1fZGVidWdTZXJ2ZXIuY29udGludWVQcm9ncmFtKCk7Ci19Ci0KLXZvaWQg
SmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTo6c3RlcE92ZXJTdGF0ZW1lbnRJbkRlYnVnZ2Vy
KCkKLXsKLSAgICBtX2RlYnVnU2VydmVyLnN0ZXBPdmVyU3RhdGVtZW50KCk7Ci19Ci0KLXZvaWQg
SmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTo6c3RlcEludG9TdGF0ZW1lbnRJbkRlYnVnZ2Vy
KCkKLXsKLSAgICBtX2RlYnVnU2VydmVyLnN0ZXBJbnRvU3RhdGVtZW50KCk7Ci19Ci0KLXZvaWQg
SmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTo6c3RlcE91dE9mRnVuY3Rpb25JbkRlYnVnZ2Vy
KCkKLXsKLSAgICBtX2RlYnVnU2VydmVyLnN0ZXBPdXRPZkZ1bmN0aW9uKCk7Ci19Ci0KLXZvaWQg
SmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTo6ZGlkUGFyc2VTb3VyY2UoY29uc3QgU3RyaW5n
JiBzb3VyY2VJRCwgY29uc3QgU2NyaXB0JiBzY3JpcHQpCi17Ci0gICAgbV93ZWJQYWdlUHJpdmF0
ZS0+bV9jbGllbnQtPmphdmFzY3JpcHRTb3VyY2VQYXJzZWQoc2NyaXB0LnVybC5jaGFyYWN0ZXJz
KCksIHNjcmlwdC51cmwubGVuZ3RoKCksIHNjcmlwdC5zb3VyY2UuY2hhcmFjdGVycygpLCBzY3Jp
cHQuc291cmNlLmxlbmd0aCgpKTsKLX0KLQotdm9pZCBKYXZhU2NyaXB0RGVidWdnZXJCbGFja0Jl
cnJ5OjpmYWlsZWRUb1BhcnNlU291cmNlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcm
IGRhdGEsIGludCBmaXJzdExpbmUsIGludCBlcnJvckxpbmUsIGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKQotewotICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5qYXZhc2NyaXB0UGFy
c2luZ0ZhaWxlZCh1cmwuaW1wbCgpLT5jaGFyYWN0ZXJzKCksIHVybC5sZW5ndGgoKSwgZXJyb3JN
ZXNzYWdlLmltcGwoKS0+Y2hhcmFjdGVycygpLCBlcnJvck1lc3NhZ2UubGVuZ3RoKCksIGVycm9y
TGluZSk7Ci19Ci0KLXZvaWQgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeTo6ZGlkUGF1c2Uo
U2NyaXB0U3RhdGUqLCBjb25zdCBTY3JpcHRWYWx1ZSYgY2FsbEZyYW1lcywgY29uc3QgU2NyaXB0
VmFsdWUmIGV4Y2VwdGlvbikKLXsKLSAgICBTdHJpbmcgc3RhY2tzOwotCi0gICAgbV9jdXJyZW50
Q2FsbEZyYW1lID0gbV9kZWJ1Z1NlcnZlci5jdXJyZW50Q2FsbEZyYW1lKCk7Ci0gICAgSmF2YVNj
cmlwdENhbGxGcmFtZSogZnJhbWUgPSBtX2N1cnJlbnRDYWxsRnJhbWU7Ci0KLSAgICB3aGlsZSAo
ZnJhbWUgJiYgZnJhbWUtPmlzVmFsaWQoKSkgewotICAgICAgICBKU0M6OlNvdXJjZVByb3ZpZGVy
KiBwcm92aWRlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNDOjpTb3VyY2VQcm92aWRlcio+KGZyYW1l
LT5zb3VyY2VJRCgpKTsKLSAgICAgICAgU3RyaW5nIHVybChwcm92aWRlci0+dXJsKCkuY2hhcmFj
dGVycygpLCBwcm92aWRlci0+dXJsKCkubGVuZ3RoKCkpOwotICAgICAgICBpZiAodXJsLmxlbmd0
aCgpKQotICAgICAgICAgICAgc3RhY2tzICs9IHVybDsKLSAgICAgICAgc3RhY2tzICs9ICI6ICI7
Ci0KLSAgICAgICAgaWYgKGZyYW1lLT50eXBlKCkgPT0gSlNDOjpEZWJ1Z2dlckNhbGxGcmFtZTo6
RnVuY3Rpb25UeXBlKSB7Ci0gICAgICAgICAgICBTdHJpbmcgbmFtZSA9IGZyYW1lLT5mdW5jdGlv
bk5hbWUoKTsKLSAgICAgICAgICAgIGlmIChuYW1lLmxlbmd0aCgpKQotICAgICAgICAgICAgICAg
IHN0YWNrcyArPSBuYW1lOwotICAgICAgICB9Ci0gICAgICAgIHN0YWNrcyArPSAiKCk6ICI7Ci0K
LSAgICAgICAgU3RyaW5nIGxpbmUgPSBTdHJpbmc6Om51bWJlcihmcmFtZS0+bGluZSgpKTsKLSAg
ICAgICAgc3RhY2tzICs9IGxpbmUgKyAiXG4iOwotCi0gICAgICAgIGZyYW1lID0gZnJhbWUtPmNh
bGxlcigpOwotICAgIH0KLQotICAgIG1fd2ViUGFnZVByaXZhdGUtPm1fY2xpZW50LT5qYXZhc2Ny
aXB0UGF1c2VkKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQgc2hvcnQqPihzdGFja3Mu
Y2hhcmFjdGVycygpKSwgc3RhY2tzLmxlbmd0aCgpKTsKLX0KLQotdm9pZCBKYXZhU2NyaXB0RGVi
dWdnZXJCbGFja0JlcnJ5OjpkaWRDb250aW51ZSgpCi17Ci0gICAgbV9jdXJyZW50Q2FsbEZyYW1l
ID0gMDsKLSAgICBtX3dlYlBhZ2VQcml2YXRlLT5tX2NsaWVudC0+amF2YXNjcmlwdENvbnRpbnVl
ZCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9KYXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJy
eS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjUxMWIyYTNmYWJlNWEzZmE0ZmQ0
NDNlYjI4ZWZkOWRkZjRlY2I2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9KYXZhU2Ny
aXB0RGVidWdnZXJCbGFja0JlcnJ5LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIGh0dHA6Ly93d3cudG9y
Y2htb2JpbGUuY29tLwotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEyIFJlc2VhcmNoIEluIE1v
dGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g
KiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKLSAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3Jp
dGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0K
LSNpZm5kZWYgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeV9oCi0jZGVmaW5lIEphdmFTY3Jp
cHREZWJ1Z2dlckJsYWNrQmVycnlfaAotCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIp
Ci0KLSNpbmNsdWRlICJTY3JpcHREZWJ1Z0xpc3RlbmVyLmgiCi0KLW5hbWVzcGFjZSBCbGFja0Jl
cnJ5IHsKLW5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2ViUGFnZVByaXZhdGU7Ci19Ci19Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSmF2YVNjcmlwdENhbGxGcmFtZTsKLWNsYXNz
IFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjsKLQotY2xhc3MgSmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tC
ZXJyeSA6IHB1YmxpYyBTY3JpcHREZWJ1Z0xpc3RlbmVyIHsKLXB1YmxpYzoKLSAgICBKYXZhU2Ny
aXB0RGVidWdnZXJCbGFja0JlcnJ5KEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUq
KTsKLSAgICB+SmF2YVNjcmlwdERlYnVnZ2VyQmxhY2tCZXJyeSgpOwotCi0gICAgdm9pZCBhZGRC
cmVha3BvaW50KGNvbnN0IHVuc2lnbmVkIHNob3J0KiB1cmwsIHVuc2lnbmVkIHVybExlbmd0aCwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IHVuc2lnbmVkIHNob3J0KiBjb25kaXRpb24sIHVuc2lnbmVk
IGNvbmRpdGlvbkxlbmd0aCk7Ci0gICAgdm9pZCB1cGRhdGVCcmVha3BvaW50KGNvbnN0IHVuc2ln
bmVkIHNob3J0KiB1cmwsIHVuc2lnbmVkIHVybExlbmd0aCwgaW50IGxpbmVOdW1iZXIsIGNvbnN0
IHVuc2lnbmVkIHNob3J0KiBjb25kaXRpb24sIHVuc2lnbmVkIGNvbmRpdGlvbkxlbmd0aCk7Ci0g
ICAgdm9pZCByZW1vdmVCcmVha3BvaW50KGNvbnN0IHVuc2lnbmVkIHNob3J0KiB1cmwsIHVuc2ln
bmVkIHVybExlbmd0aCwgaW50IGxpbmVOdW1iZXIpOwotCi0gICAgYm9vbCBwYXVzZU9uRXhjZXB0
aW9ucygpOwotICAgIHZvaWQgc2V0UGF1c2VPbkV4Y2VwdGlvbnMoYm9vbCk7Ci0KLSAgICB2b2lk
IHBhdXNlSW5EZWJ1Z2dlcigpOwotICAgIHZvaWQgcmVzdW1lRGVidWdnZXIoKTsKLQotICAgIHZv
aWQgc3RlcE92ZXJTdGF0ZW1lbnRJbkRlYnVnZ2VyKCk7Ci0gICAgdm9pZCBzdGVwSW50b1N0YXRl
bWVudEluRGVidWdnZXIoKTsKLSAgICB2b2lkIHN0ZXBPdXRPZkZ1bmN0aW9uSW5EZWJ1Z2dlcigp
OwotCi0gICAgLy8gRnJvbSBTY3JpcHREZWJ1Z0xpc3RlbmVyCi0gICAgdmlydHVhbCB2b2lkIGRp
ZFBhcnNlU291cmNlKGNvbnN0IFN0cmluZyYgIHNvdXJjZUlELCBjb25zdCBTY3JpcHQmKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZmFpbGVkVG9QYXJzZVNvdXJjZShjb25zdCBTdHJpbmcmIHVybCwgY29u
c3QgU3RyaW5nJiBkYXRhLCBpbnQgZmlyc3RMaW5lLCBpbnQgZXJyb3JMaW5lLCBjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFBhdXNlKFNjcmlwdFN0YXRl
KiwgY29uc3QgU2NyaXB0VmFsdWUmIGNhbGxGcmFtZXMsIGNvbnN0IFNjcmlwdFZhbHVlJiBleGNl
cHRpb24pOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDb250aW51ZSgpOwotCi1wcm90ZWN0ZWQ6Ci0g
ICAgdm9pZCBzdGFydCgpOwotICAgIHZvaWQgc3RvcCgpOwotCi1wcml2YXRlOgotICAgIEJsYWNr
QmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUqIG1fd2ViUGFnZVByaXZhdGU7Ci0gICAgUGFn
ZVNjcmlwdERlYnVnU2VydmVyJiBtX2RlYnVnU2VydmVyOwotCi0gICAgSmF2YVNjcmlwdENhbGxG
cmFtZSogbV9jdXJyZW50Q2FsbEZyYW1lOwotfTsKLQotfSAvLyBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSNlbmRpZiAvLyBKYXZhU2NyaXB0RGVidWdn
ZXJCbGFja0JlcnJ5X2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>