<?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>66957</bug_id>
          
          <creation_ts>2011-08-25 10:40:38 -0700</creation_ts>
          <short_desc>Unzip initialization lists and constructors in JSCell hierarchy (2/7)</short_desc>
          <delta_ts>2011-08-26 15:33:11 -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>JavaScriptCore</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>
          <dependson>66827</dependson>
          <blocked>66567</blocked>
    
    <blocked>67064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>ggaren</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>456974</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-25 10:40:38 -0700</bug_when>
    <thetext>This is the second level of the unzipping process described in https://bugs.webkit.org/show_bug.cgi?id=66567.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457327</commentid>
    <comment_count>1</comment_count>
      <attachid>105291</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-25 19:01:25 -0700</bug_when>
    <thetext>Created attachment 105291
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457602</commentid>
    <comment_count>2</comment_count>
      <attachid>105291</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-26 10:05:30 -0700</bug_when>
    <thetext>Comment on attachment 105291
Patch

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

&gt; Source/JavaScriptCore/runtime/Executable.h:221
&gt; +#else
&gt; +        void finishCreation(JSGlobalData&amp; globalData)
&gt; +        {
&gt; +            Base::finishCreation(globalData);
&gt; +        }
&gt; +#endif

Why is this needed? Don’t we already inherit the base function? Not sure why we’d need to override it with an inline that does the same thing.

&gt; Source/JavaScriptCore/runtime/Executable.h:291
&gt; +            UNUSED_PARAM(globalData);

This is incorrect. The parameter is passed to the base class version of finishCreation so it is used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457704</commentid>
    <comment_count>3</comment_count>
      <attachid>105390</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-26 12:27:55 -0700</bug_when>
    <thetext>Created attachment 105390
Fixing review issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457817</commentid>
    <comment_count>4</comment_count>
      <attachid>105390</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-26 15:33:06 -0700</bug_when>
    <thetext>Comment on attachment 105390
Fixing review issues

Clearing flags on attachment: 105390

Committed r93920: &lt;http://trac.webkit.org/changeset/93920&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457818</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-26 15:33:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105291</attachid>
            <date>2011-08-25 19:01:25 -0700</date>
            <delta_ts>2011-08-26 12:27:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66957-20110825190124.patch</filename>
            <type>text/plain</type>
            <size>24926</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM4NDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDk0
ZTE1NmI0OWRlNmE2NTg3YjIxMDcwYzZmODQxNGFkMTg4MWExZTEuLmY4ZWU3MzFkY2VjNTA2OWE1
ZjEzMWNlNjgxMjIwZDA3NDk0OGQ3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDU5IEBACiAyMDExLTA4LTI1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0cnVj
dG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICgyLzcpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Njk1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvbXBsZXRlZCB0aGUgc2Vjb25kIGxldmVsIG9mIHRoZSBy
ZWZhY3RvcmluZyB0byBhZGQgZmluaXNoQ3JlYXRpb24oKQorICAgICAgICBtZXRob2RzIHRvIGFs
bCBjbGFzc2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAor
ICAgICAgICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFi
bGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OkV4ZWN1dGFibGVCYXNlKToKKyAg
ICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Ok5hdGl2
ZUV4ZWN1dGFibGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUV4ZWN1dGFibGU6OmZp
bmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6TmF0aXZlRXhl
Y3V0YWJsZSk6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6OlNjcmlwdEV4ZWN1dGFi
bGUpOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgICogcnVudGltZS9HZXR0ZXJTZXR0ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0
dGVyOjpHZXR0ZXJTZXR0ZXIpOgorICAgICAgICAoSlNDOjpHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSk6
CisgICAgICAgICogcnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5oOgorICAgICAgICAoSlNDOjpK
U0FQSVZhbHVlV3JhcHBlcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBw
ZXI6OkpTQVBJVmFsdWVXcmFwcGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6Cisg
ICAgICAgIChKU0M6OkpTTm9uRmluYWxPYmplY3Q6OkpTTm9uRmluYWxPYmplY3QpOgorICAgICAg
ICAoSlNDOjpKU05vbkZpbmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6
OkpTRmluYWxPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpTRmluYWxPYmplY3Q6OmZp
bmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNGaW5hbE9iamVjdDo6SlNGaW5hbE9iamVj
dCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpKU09iamVjdCk6CisgICAgICAgICogcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5h
bWVJdGVyYXRvcjo6SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcik6CisgICAgICAgIChKU0M6OkpTUHJv
cGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNy
ZWF0ZSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHAuY3BwOgorICAgICAgICAoSlNDOjpSZWdF
eHA6OlJlZ0V4cCk6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6Y3JlYXRlV2l0aG91dENhY2hpbmcp
OgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVDaGFpbi5oOgorICAgICAgICAoSlNDOjpTY29wZUNo
YWluTm9kZTo6U2NvcGVDaGFpbk5vZGUpOgorICAgICAgICAoSlNDOjpTY29wZUNoYWluTm9kZTo6
Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZTo6U3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHA6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZUNoYWluOjpTdHJ1Y3R1cmVDaGFpbik6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmVDaGFpbi5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVDaGFpbjo6Y3JlYXRlKToK
KworMjAxMS0wOC0yNSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CiAgICAgICAgIEZpeGluZyBicm9rZW4gYnVpbGQgZHVlIHRvIHVudXNlZCB2YXJpYWJsZXMgaW4g
cmVsZWFzZSBtb2RlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NzAwNAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgK
aW5kZXggZWY3MjcyYmEwZWEzZDhlMmEyYTc1MDBhNGZlYWQwNTAzZmY2Y2UwNS4uMTJhM2MxN2Fl
MTdlNDhmZGNhM2M4OTQwNGEyMTA3ZjRiMzk3YmI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4ZWN1dGFibGUuaApAQCAtNTgsNyArNTgsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgICAgICwgbV9udW1QYXJhbWV0ZXJzRm9yQ2FsbChudW1QYXJhbWV0ZXJzKQogICAg
ICAgICAgICAgLCBtX251bVBhcmFtZXRlcnNGb3JDb25zdHJ1Y3QobnVtUGFyYW1ldGVycykKICAg
ICAgICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgICAg
IH0KIAogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSkKQEAgLTY5LDEzICs2OCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGZpbmFs
aXplci5sZWFrSGFuZGxlKCk7CiAjZW5kaWYKICAgICAgICAgfQotICAgICAgICAKKyAKICAgICBw
dWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNDZWxsIEJhc2U7CiAKICAgICAgICAgc3RhdGljIEV4
ZWN1dGFibGVCYXNlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgaW50IG51bVBhcmFtZXRlcnMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxFeGVjdXRhYmxlQmFzZT4oZ2xvYmFsRGF0YS5oZWFwKSkg
RXhlY3V0YWJsZUJhc2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBudW1QYXJhbWV0ZXJzKTsKKyAg
ICAgICAgICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8
RXhlY3V0YWJsZUJhc2U+KGdsb2JhbERhdGEuaGVhcCkpIEV4ZWN1dGFibGVCYXNlKGdsb2JhbERh
dGEsIHN0cnVjdHVyZSwgbnVtUGFyYW1ldGVycyk7CisgICAgICAgICAgICBleGVjdXRhYmxlLT5m
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgICAgIHJldHVybiBleGVjdXRhYmxl
OwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBpc0hvc3RGdW5jdGlvbigpIGNvbnN0CkBAIC0x
ODAsOSArMTgxLDEyIEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShKSVQpCiAgICAgICAg
IHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY2FsbFRodW5rLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlv
biwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvbnN0cnVjdFRodW5rLCBOYXRpdmVGdW5jdGlvbiBj
b25zdHJ1Y3RvcikKICAgICAgICAgeworICAgICAgICAgICAgTmF0aXZlRXhlY3V0YWJsZSogZXhl
Y3V0YWJsZTsKICAgICAgICAgICAgIGlmICghY2FsbFRodW5rKQotICAgICAgICAgICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXAp
KSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIEpJVENvZGUoKSwgZnVuY3Rpb24sIEpJVENv
ZGUoKSwgY29uc3RydWN0b3IpOwotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxs
PE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUoZ2xv
YmFsRGF0YSwgSklUQ29kZTo6SG9zdEZ1bmN0aW9uKGNhbGxUaHVuayksIGZ1bmN0aW9uLCBKSVRD
b2RlOjpIb3N0RnVuY3Rpb24oY29uc3RydWN0VGh1bmspLCBjb25zdHJ1Y3Rvcik7CisgICAgICAg
ICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+
KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgSklUQ29kZSgp
LCBmdW5jdGlvbiwgSklUQ29kZSgpLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1
dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgSklU
Q29kZTo6SG9zdEZ1bmN0aW9uKGNhbGxUaHVuayksIGZ1bmN0aW9uLCBKSVRDb2RlOjpIb3N0RnVu
Y3Rpb24oY29uc3RydWN0VGh1bmspLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICByZXR1cm4g
ZXhlY3V0YWJsZTsKICAgICAgICAgfQogI2Vsc2UKICAgICAgICAgc3RhdGljIE5hdGl2ZUV4ZWN1
dGFibGUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKQEAgLTE5OCw3ICsyMDIsMjQgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhMZWFmVHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyB9CiAgICAgICAgIAogICAg
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKLSAgICAKKworICAgIHByb3RlY3Rl
ZDoKKyNpZiBFTkFCTEUoSklUKQorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSklUQ29kZSBjYWxsVGh1bmssIEpJVENvZGUgY29uc3RydWN0VGh1
bmspCisgICAgICAgIHsKKyAgICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERh
dGEpOworICAgICAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbCA9IGNhbGxUaHVuazsKKyAgICAgICAg
ICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IGNvbnN0cnVjdFRodW5rOworICAgICAgICAgICAg
bV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrID0gY2FsbFRodW5rLmFkZHJlc3NGb3JDYWxs
KCk7CisgICAgICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IGNv
bnN0cnVjdFRodW5rLmFkZHJlc3NGb3JDYWxsKCk7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQorICAgICAgICB7
CisgICAgICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAg
fQorI2VuZGlmCisgCiAgICAgcHJpdmF0ZToKICNpZiBFTkFCTEUoSklUKQogICAgICAgICBOYXRp
dmVFeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSklUQ29kZSBjYWxsVGh1bmss
IE5hdGl2ZUZ1bmN0aW9uIGZ1bmN0aW9uLCBKSVRDb2RlIGNvbnN0cnVjdFRodW5rLCBOYXRpdmVG
dW5jdGlvbiBjb25zdHJ1Y3RvcikKQEAgLTIwNiwxMCArMjI3LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgICAgICAsIG1fZnVuY3Rpb24oZnVuY3Rpb24pCiAgICAgICAgICAgICAsIG1fY29u
c3RydWN0b3IoY29uc3RydWN0b3IpCiAgICAgICAgIHsKLSAgICAgICAgICAgIG1faml0Q29kZUZv
ckNhbGwgPSBjYWxsVGh1bms7Ci0gICAgICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3QgPSBj
b25zdHJ1Y3RUaHVuazsKLSAgICAgICAgICAgIG1faml0Q29kZUZvckNhbGxXaXRoQXJpdHlDaGVj
ayA9IGNhbGxUaHVuay5hZGRyZXNzRm9yQ2FsbCgpOwotICAgICAgICAgICAgbV9qaXRDb2RlRm9y
Q29uc3RydWN0V2l0aEFyaXR5Q2hlY2sgPSBjb25zdHJ1Y3RUaHVuay5hZGRyZXNzRm9yQ2FsbCgp
OworICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgY2FsbFRodW5rLCBjb25z
dHJ1Y3RUaHVuayk7CiAgICAgICAgIH0KICNlbHNlCiAgICAgICAgIE5hdGl2ZUV4ZWN1dGFibGUo
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbiwgTmF0aXZl
RnVuY3Rpb24gY29uc3RydWN0b3IpCkBAIC0yMTcsNiArMjM1LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgICAgICAsIG1fZnVuY3Rpb24oZnVuY3Rpb24pCiAgICAgICAgICAgICAsIG1fY29u
c3RydWN0b3IoY29uc3RydWN0b3IpCiAgICAgICAgIHsKKyAgICAgICAgICAgIGZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEpOwogICAgICAgICB9CiAjZW5kaWYKIApAQCAtMjM1LDEyICsyNTQsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICwgbV9zb3VyY2Uoc291cmNlKQogICAgICAg
ICAgICAgLCBtX2ZlYXR1cmVzKGlzSW5TdHJpY3RDb250ZXh0ID8gU3RyaWN0TW9kZUZlYXR1cmUg
OiAwKQogICAgICAgICB7Ci0jaWYgRU5BQkxFKENPREVCTE9DS19TQU1QTElORykKLSAgICAgICAg
ICAgIGlmIChTYW1wbGluZ1Rvb2wqIHNhbXBsZXIgPSBnbG9iYWxEYXRhLmludGVycHJldGVyLT5z
YW1wbGVyKCkpCi0gICAgICAgICAgICAgICAgc2FtcGxlci0+bm90aWZ5T2ZTY29wZShnbG9iYWxE
YXRhLCB0aGlzKTsKLSNlbHNlCi0gICAgICAgICAgICBVTlVTRURfUEFSQU0oZ2xvYmFsRGF0YSk7
Ci0jZW5kaWYKKyAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAg
ICB9CiAKICAgICAgICAgU2NyaXB0RXhlY3V0YWJsZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgaXNJblN0cmljdENv
bnRleHQpCkBAIC0yNDgsMTIgKzI2Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAg
LCBtX3NvdXJjZShzb3VyY2UpCiAgICAgICAgICAgICAsIG1fZmVhdHVyZXMoaXNJblN0cmljdENv
bnRleHQgPyBTdHJpY3RNb2RlRmVhdHVyZSA6IDApCiAgICAgICAgIHsKLSNpZiBFTkFCTEUoQ09E
RUJMT0NLX1NBTVBMSU5HKQotICAgICAgICAgICAgaWYgKFNhbXBsaW5nVG9vbCogc2FtcGxlciA9
IGV4ZWMtPmdsb2JhbERhdGEoKS5pbnRlcnByZXRlci0+c2FtcGxlcigpKQotICAgICAgICAgICAg
ICAgIHNhbXBsZXItPm5vdGlmeU9mU2NvcGUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0aGlzKTsKLSNl
bHNlCi0gICAgICAgICAgICBVTlVTRURfUEFSQU0oZXhlYyk7Ci0jZW5kaWYKKyAgICAgICAgICAg
IGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgICAgIH0KIAogICAgICAg
ICBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UoKSB7IHJldHVybiBtX3NvdXJjZTsgfQpAQCAtMjcw
LDcgKzI3OSwxOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHVubGlu
a0NhbGxzKCkgPSAwOwogICAgICAgICAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBz
X2luZm87CisKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyNpZiBFTkFCTEUoQ09ERUJMT0NLX1NBTVBMSU5HKQor
ICAgICAgICAgICAgaWYgKFNhbXBsaW5nVG9vbCogc2FtcGxlciA9IGdsb2JhbERhdGEuaW50ZXJw
cmV0ZXItPnNhbXBsZXIoKSkKKyAgICAgICAgICAgICAgICBzYW1wbGVyLT5ub3RpZnlPZlNjb3Bl
KGdsb2JhbERhdGEsIHRoaXMpOworI2Vsc2UKKyAgICAgICAgICAgIFVOVVNFRF9QQVJBTShnbG9i
YWxEYXRhKTsKKyNlbmRpZgorICAgICAgICB9CisKICAgICAgICAgdm9pZCByZWNvcmRQYXJzZShD
b2RlRmVhdHVyZXMgZmVhdHVyZXMsIGJvb2wgaGFzQ2FwdHVyZWRWYXJpYWJsZXMsIGludCBmaXJz
dExpbmUsIGludCBsYXN0TGluZSkKICAgICAgICAgewogICAgICAgICAgICAgbV9mZWF0dXJlcyA9
IGZlYXR1cmVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0
dGVyU2V0dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIu
aAppbmRleCBlY2VjNmFkZWU4Y2MyNzRkOWEzNzc0ZjNkNGRjOGE2ZjliYTg0ZmM4Li41ZWRhMWFk
ZTcxZjI5M2FlOTg2NGJmZGJmMjdjOTRlZWE1MWUxOWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaApAQCAtNDEsNyArNDEsNiBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgR2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAg
IDogSlNDZWxsKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLmdldHRlclNl
dHRlclN0cnVjdHVyZS5nZXQoKSkKICAgICAgICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRp
b24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKICAgICAgICAgfQogCiAgICAgcHVibGljOgpAQCAtNDks
NyArNDgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgR2V0dGVyU2V0dGVy
KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8R2V0dGVyU2V0dGVyPigqZXhlYy0+aGVhcCgpKSkgR2V0dGVyU2V0
dGVyKGV4ZWMpOworICAgICAgICAgICAgR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0ZXIgPSBuZXcg
KGFsbG9jYXRlQ2VsbDxHZXR0ZXJTZXR0ZXI+KCpleGVjLT5oZWFwKCkpKSBHZXR0ZXJTZXR0ZXIo
ZXhlYyk7CisgICAgICAgICAgICBnZXR0ZXJTZXR0ZXItPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmds
b2JhbERhdGEoKSk7CisgICAgICAgICAgICByZXR1cm4gZ2V0dGVyU2V0dGVyOwogICAgICAgICB9
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVy
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCmlu
ZGV4IDU0NTg2MGJmZDEyMzc0MTc2MTdiZDE1ZmMwNGY5Mjk0ZmY3YTgwMTguLjQzMGM4YzU2MDMx
ZmU0YTk1ZDZjNzU3ZDVjMWE1MzllNGMyOWRkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaApAQCAtNDgsNyArNDgsOSBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBKU0FQSVZhbHVlV3JhcHBlciog
Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkgCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FQSVZhbHVlV3JhcHBlcj4oKmV4ZWMt
PmhlYXAoKSkpIEpTQVBJVmFsdWVXcmFwcGVyKGV4ZWMsIHZhbHVlKTsKKyAgICAgICAgICAgIEpT
QVBJVmFsdWVXcmFwcGVyKiB3cmFwcGVyID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNBUElWYWx1ZVdy
YXBwZXI+KCpleGVjLT5oZWFwKCkpKSBKU0FQSVZhbHVlV3JhcHBlcihleGVjKTsKKyAgICAgICAg
ICAgIHdyYXBwZXItPmZpbmlzaENyZWF0aW9uKGV4ZWMsIHZhbHVlKTsKKyAgICAgICAgICAgIHJl
dHVybiB3cmFwcGVyOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CkBAIC02MCwxMCArNjIs
OSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
SlNBUElWYWx1ZVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQorICAgICAg
ICBKU0FQSVZhbHVlV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICA6IEpTQ2Vs
bChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5hcGlXcmFwcGVyU3RydWN0
dXJlLmdldCgpKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLCB2
YWx1ZSk7CiAgICAgICAgIH0KIAogICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4gbV92YWx1
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDViZDMyMmI0
OTQ5ZjliZWMwODhmMDhmMzMxYzE4MTUyMGE4YzM0ZWEuLjg3MWIyNGJiYWM4NWQ2YjFjNTNkYzM2
OWMwNjEwNjNkMDRhMTkwZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmpl
Y3QuaApAQCAtMzYxLDYgKzM2MSwxMiBAQCBDT01QSUxFX0FTU0VSVCgoSlNGaW5hbE9iamVjdF9p
bmxpbmVTdG9yYWdlQ2FwYWNpdHkgPj0gSlNOb25GaW5hbE9iamVjdF9pbmxpbmVTdAogICAgICAg
ICBleHBsaWNpdCBKU05vbkZpbmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgICAgICA6IEpTT2JqZWN0KGdsb2JhbERhdGEsIHN0
cnVjdHVyZSwgbV9pbmxpbmVTdG9yYWdlKQogICAgICAgICB7CisgICAgICAgICAgICBmaW5pc2hD
cmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBC
YXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtX2lubGluZVN0b3JhZ2UpOwogICAgICAg
ICAgICAgQVNTRVJUKCEoT0JKRUNUX09GRlNFVE9GKEpTTm9uRmluYWxPYmplY3QsIG1faW5saW5l
U3RvcmFnZSkgJSBzaXplb2YoZG91YmxlKSkpOwogICAgICAgICAgICAgQVNTRVJUKHRoaXMtPnN0
cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpID09IEpTTm9uRmluYWxPYmplY3Rf
aW5saW5lU3RvcmFnZUNhcGFjaXR5KTsKICAgICAgICAgfQpAQCAtMzg0LDcgKzM5MCw4IEBAIENP
TVBJTEVfQVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA+PSBKU05v
bkZpbmFsT2JqZWN0X2lubGluZVN0CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgSlNGaW5hbE9i
amVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0ZpbmFsT2JqZWN0
PigqZXhlYy0+aGVhcCgpKSkgSlNGaW5hbE9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVj
dHVyZSk7CisgICAgICAgICAgICBKU0ZpbmFsT2JqZWN0KiBmaW5hbE9iamVjdCA9IG5ldyAoYWxs
b2NhdGVDZWxsPEpTRmluYWxPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKU0ZpbmFsT2JqZWN0KGV4
ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIHJldHVybiBmaW5hbE9i
amVjdDsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG90eXBlKQpAQCAtMzky
LDEyICszOTksMTkgQEAgQ09NUElMRV9BU1NFUlQoKEpTRmluYWxPYmplY3RfaW5saW5lU3RvcmFn
ZUNhcGFjaXR5ID49IEpTTm9uRmluYWxPYmplY3RfaW5saW5lU3QKICAgICAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgQW5vbnltb3VzU2xvdENvdW50LCAmc19pbmZvKTsKICAg
ICAgICAgfQogCisgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKKyAgICAgICAgeworICAgICAgICAgICAgQmFzZTo6Zmlu
aXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgbV9pbmxpbmVTdG9yYWdlKTsKKyAgICAgICAgICAgIEFT
U0VSVChPQkpFQ1RfT0ZGU0VUT0YoSlNGaW5hbE9iamVjdCwgbV9pbmxpbmVTdG9yYWdlKSAlIHNp
emVvZihkb3VibGUpKTsKKyAgICAgICAgICAgIEFTU0VSVCh0aGlzLT5zdHJ1Y3R1cmUoKS0+cHJv
cGVydHlTdG9yYWdlQ2FwYWNpdHkoKSA9PSBKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBh
Y2l0eSk7CisgICAgICAgIH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IEpTRmlu
YWxPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
ICAgICAgICAgICAgIDogSlNPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBtX2lubGluZVN0
b3JhZ2UpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChPQkpFQ1RfT0ZGU0VUT0YoSlNG
aW5hbE9iamVjdCwgbV9pbmxpbmVTdG9yYWdlKSAlIHNpemVvZihkb3VibGUpID09IDApOwotICAg
ICAgICAgICAgQVNTRVJUKHRoaXMtPnN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0
eSgpID09IEpTRmluYWxPYmplY3RfaW5saW5lU3RvcmFnZUNhcGFjaXR5KTsKKyAgICAgICAgICAg
IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
IHwgSXNKU0ZpbmFsT2JqZWN0OwpAQCAtNDQ2LDcgKzQ2MCw2IEBAIGlubGluZSBKU09iamVjdDo6
SlNPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
UHJvcGVyCiAgICAgOiBKU0NlbGwoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogICAgICwgbV9wcm9w
ZXJ0eVN0b3JhZ2UoaW5saW5lU3RvcmFnZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxE
YXRhLCBpbmxpbmVTdG9yYWdlKTsKIH0KIAogaW5saW5lIEpTT2JqZWN0Ojp+SlNPYmplY3QoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yLmNwcAppbmRleCAwMmQyNWMyZjg0YzRiMjBhZTA5YmIzNjEyZTY1MTU3ZjIwNmQw
YzZjLi5jYzEyMmJkN2RlY2M4MzZlYTlmM2QxNzBkN2YzOGIwMWMyNzVjY2IyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJh
dG9yLmNwcApAQCAtNDMsNyArNDMsNiBAQCBpbmxpbmUgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6
SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TgogICAgICwg
bV9qc1N0cmluZ3NTaXplKHByb3BlcnR5TmFtZUFycmF5RGF0YS0+cHJvcGVydHlOYW1lVmVjdG9y
KCkuc2l6ZSgpKQogICAgICwgbV9qc1N0cmluZ3MoYWRvcHRBcnJheVB0cihuZXcgV3JpdGVCYXJy
aWVyPFVua25vd24+W21fanNTdHJpbmdzU2l6ZV0pKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4
ZWMsIHByb3BlcnR5TmFtZUFycmF5RGF0YSk7CiB9CiAKIEpTUHJvcGVydHlOYW1lSXRlcmF0b3Iq
IEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiBvKQpAQCAtNjEsNiArNjAsNyBAQCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdAogICAgICAgICBu
dW1DYWNoZWFibGVTbG90cyA9IG8tPnN0cnVjdHVyZSgpLT5wcm9wZXJ0eVN0b3JhZ2VTaXplKCk7
CiAgICAgCiAgICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcioganNQcm9wZXJ0eU5hbWVJdGVyYXRv
ciA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTUHJvcGVydHlOYW1lSXRlcmF0b3I+KCpleGVjLT5oZWFw
KCkpKSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKGV4ZWMsIHByb3BlcnR5TmFtZXMuZGF0YSgpLCBu
dW1DYWNoZWFibGVTbG90cyk7CisgICAganNQcm9wZXJ0eU5hbWVJdGVyYXRvci0+ZmluaXNoQ3Jl
YXRpb24oZXhlYywgcHJvcGVydHlOYW1lcy5kYXRhKCkpOwogCiAgICAgaWYgKG8tPnN0cnVjdHVy
ZSgpLT5pc0RpY3Rpb25hcnkoKSkKICAgICAgICAgcmV0dXJuIGpzUHJvcGVydHlOYW1lSXRlcmF0
b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yLmgKaW5kZXggNDIwMmViYjU0ZDM4MzVmNjIxMDRiZGIyYjgzNTU4OGE0MTYw
OWU5ZC4uMmJkODEwZmVkY2Q5MWMzMTJkNjYzZTQyMWZmMDM2ODEwMDQzNGE3NyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0
b3IuaApAQCAtNDgsNyArNDgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIEpT
UHJvcGVydHlOYW1lSXRlcmF0b3IqIGNyZWF0ZShFeGVjU3RhdGUqLCBKU09iamVjdCopOwogICAg
ICAgICBzdGF0aWMgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogY3JlYXRlKEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lQXJyYXlEYXRhKiBwcm9wZXJ0eU5hbWVBcnJheURhdGEsIHNpemVfdCBu
dW1DYWNoZWFibGVTbG90KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxv
Y2F0ZUNlbGw8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcj4oKmV4ZWMtPmhlYXAoKSkpIEpTUHJvcGVy
dHlOYW1lSXRlcmF0b3IoZXhlYywgcHJvcGVydHlOYW1lQXJyYXlEYXRhLCBudW1DYWNoZWFibGVT
bG90KTsKKyAgICAgICAgICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGl0ZXJhdG9yID0gbmV3
IChhbGxvY2F0ZUNlbGw8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcj4oKmV4ZWMtPmhlYXAoKSkpIEpT
UHJvcGVydHlOYW1lSXRlcmF0b3IoZXhlYywgcHJvcGVydHlOYW1lQXJyYXlEYXRhLCBudW1DYWNo
ZWFibGVTbG90KTsKKyAgICAgICAgICAgIGl0ZXJhdG9yLT5maW5pc2hDcmVhdGlvbihleGVjLCBw
cm9wZXJ0eU5hbWVBcnJheURhdGEpOworICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yOwogICAg
ICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgU3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHByb3RvdHlwZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IGQ5MGNkNTQzNzE3MmIxMjYyOGY3
OThlNjI3NzE3MDM4Y2M2ZGIxOTQuLjRlZGQ4MmM1OGE2NTE5NjA1MDQ2ZmUzZjE5NDdmYjhkY2Fi
NGM2NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmNwcApAQCAtODgs
NyArODgsNiBAQCBSZWdFeHA6OlJlZ0V4cChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0
IFVTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIFJlZ0V4cEZsYQogICAgICwgbV9ydE1hdGNoRm91bmRD
b3VudCgwKQogI2VuZGlmCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiB9CiAK
IHZvaWQgUmVnRXhwOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCkBA
IC0xMDcsNyArMTA2LDkgQEAgUmVnRXhwOjp+UmVnRXhwKCkKIAogUmVnRXhwKiBSZWdFeHA6OmNy
ZWF0ZVdpdGhvdXRDYWNoaW5nKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgVVN0cmlu
ZyYgcGF0dGVyblN0cmluZywgUmVnRXhwRmxhZ3MgZmxhZ3MpCiB7Ci0gICAgcmV0dXJuIG5ldyAo
YWxsb2NhdGVDZWxsPFJlZ0V4cD4oZ2xvYmFsRGF0YS5oZWFwKSkgUmVnRXhwKGdsb2JhbERhdGEs
IHBhdHRlcm5TdHJpbmcsIGZsYWdzKTsKKyAgICBSZWdFeHAqIHJlZ0V4cCA9IG5ldyAoYWxsb2Nh
dGVDZWxsPFJlZ0V4cD4oZ2xvYmFsRGF0YS5oZWFwKSkgUmVnRXhwKGdsb2JhbERhdGEsIHBhdHRl
cm5TdHJpbmcsIGZsYWdzKTsKKyAgICByZWdFeHAtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEp
OworICAgIHJldHVybiByZWdFeHA7CiB9CiAKIFJlZ0V4cCogUmVnRXhwOjpjcmVhdGUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBVU3RyaW5nJiBwYXR0ZXJuU3RyaW5nLCBSZWdFeHBG
bGFncyBmbGFncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Nj
b3BlQ2hhaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaApp
bmRleCAwNjhkYzg1YjY1NDk3ZGEyNThlYmY0ODAzYWI5NmQ2NWEyNDVmZTU1Li4xNzAwMWNjZmVl
NjdkYTM5YjNjZTkzOTUzOGU4ODdhMmEyNTVmNTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU2NvcGVDaGFpbi5oCkBAIC00Myw3ICs0Myw2IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICAgICAgLCBnbG9iYWxPYmplY3QoKmdsb2JhbERhdGEsIHRoaXMsIGdsb2JhbE9iamVj
dCkKICAgICAgICAgICAgICwgZ2xvYmFsVGhpcygqZ2xvYmFsRGF0YSwgdGhpcywgZ2xvYmFsVGhp
cykKICAgICAgICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgZ2xv
YmFsT2JqZWN0KTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgpAQCAtNTgsMTEgKzU3LDE1
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTY29wZUNoYWluTm9kZSogY3Jl
YXRlKEV4ZWNTdGF0ZSogZXhlYywgU2NvcGVDaGFpbk5vZGUqIG5leHQsIEpTT2JqZWN0KiBvYmpl
Y3QsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgSlNPYmplY3QqIGdsb2JhbFRoaXMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBu
ZXcgKGFsbG9jYXRlQ2VsbDxTY29wZUNoYWluTm9kZT4oKmV4ZWMtPmhlYXAoKSkpIFNjb3BlQ2hh
aW5Ob2RlKG5leHQsIG9iamVjdCwgZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxUaGlz
KTsKKyAgICAgICAgICAgIFNjb3BlQ2hhaW5Ob2RlKiBub2RlID0gbmV3IChhbGxvY2F0ZUNlbGw8
U2NvcGVDaGFpbk5vZGU+KCpleGVjLT5oZWFwKCkpKSBTY29wZUNoYWluTm9kZShuZXh0LCBvYmpl
Y3QsIGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgZ2xvYmFsVGhpcyk7CisgICAgICAgICAgICBu
b2RlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QpOworICAgICAgICAg
ICAgcmV0dXJuIG5vZGU7CiAgICAgICAgIH0KICAgICAgICAgc3RhdGljIFNjb3BlQ2hhaW5Ob2Rl
KiBjcmVhdGUoU2NvcGVDaGFpbk5vZGUqIG5leHQsIEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFs
RGF0YSogZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3Qq
IGdsb2JhbFRoaXMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRl
Q2VsbDxTY29wZUNoYWluTm9kZT4oZ2xvYmFsRGF0YS0+aGVhcCkpIFNjb3BlQ2hhaW5Ob2RlKG5l
eHQsIG9iamVjdCwgZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxUaGlzKTsKKyAgICAg
ICAgICAgIFNjb3BlQ2hhaW5Ob2RlKiBub2RlID0gbmV3IChhbGxvY2F0ZUNlbGw8U2NvcGVDaGFp
bk5vZGU+KGdsb2JhbERhdGEtPmhlYXApKSBTY29wZUNoYWluTm9kZShuZXh0LCBvYmplY3QsIGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgZ2xvYmFsVGhpcyk7CisgICAgICAgICAgICBub2RlLT5m
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgcmV0
dXJuIG5vZGU7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIEpTR2xvYmFsRGF0YSogZ2xv
YmFsRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuY3BwCmlu
ZGV4IGZkYWU1ODQwZTVlYzIzNzQ4ZmNiMmIyYTJkZDI2Yzc3MzNiYjhmNmUuLjMyYTJiZDNiMDhl
NTM2ZTA0YWUzOTBkYTIwNGIxNTM3YTdlZTQ1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtMTc2LDkgKzE3Niw2IEBAIFN0cnVjdHVyZTo6U3Ry
dWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUsIGNvbnN0
IFR5cGVJbmZvCiAgICAgLCBtX3ByZXZlbnRFeHRlbnNpb25zKGZhbHNlKQogICAgICwgbV9kaWRU
cmFuc2l0aW9uKGZhbHNlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwotICAg
IEFTU0VSVChtX3Byb3RvdHlwZSk7Ci0gICAgQVNTRVJUKG1fcHJvdG90eXBlLmlzT2JqZWN0KCkg
fHwgbV9wcm90b3R5cGUuaXNOdWxsKCkpOwogfQogCiBjb25zdCBDbGFzc0luZm8gU3RydWN0dXJl
OjpzX2luZm8gPSB7ICJTdHJ1Y3R1cmUiLCAwLCAwLCAwIH07CkBAIC0yMDAsMTAgKzE5Nyw2IEBA
IFN0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAgICAsIG1f
cHJldmVudEV4dGVuc2lvbnMoZmFsc2UpCiAgICAgLCBtX2RpZFRyYW5zaXRpb24oZmFsc2UpCiB7
Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgdGhpcywgQ3JlYXRpbmdFYXJseUNlbGwp
OwotICAgIEFTU0VSVChtX3Byb3RvdHlwZSk7Ci0gICAgQVNTRVJUKG1fcHJvdG90eXBlLmlzTnVs
bCgpKTsKLSAgICBBU1NFUlQoIWdsb2JhbERhdGEuc3RydWN0dXJlU3RydWN0dXJlKTsKIH0KIAog
U3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBTdHJ1
Y3R1cmUqIHByZXZpb3VzKQpAQCAtMjIzLDkgKzIxNiw2IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgU3RydWN0dXJlKiBwcmV2aW91cykKICAg
ICAsIG1fcHJldmVudEV4dGVuc2lvbnMocHJldmlvdXMtPm1fcHJldmVudEV4dGVuc2lvbnMpCiAg
ICAgLCBtX2RpZFRyYW5zaXRpb24odHJ1ZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxE
YXRhKTsKLSAgICBBU1NFUlQobV9wcm90b3R5cGUpOwotICAgIEFTU0VSVChtX3Byb3RvdHlwZS5p
c09iamVjdCgpIHx8IG1fcHJvdG90eXBlLmlzTnVsbCgpKTsKIH0KIAogU3RydWN0dXJlOjp+U3Ry
dWN0dXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXgg
ZWZjNzVjNGFlNjUwZjMyYjkzMWMyYmQ5M2U5ZGYwNWU3MmI1ZjA0Ny4uZDU1MTdkZGRmMTg2NTM5
ZWU3MWYxNmQ1ZDQ3ZGQ2ZDE2ZDdhMzYzNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvU3RydWN0dXJlLmgKQEAgLTY2LDkgKzY2LDI4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICB7CiAgICAgICAgICAgICBBU1NFUlQoZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwog
ICAgICAgICAgICAgQVNTRVJUKGNsYXNzSW5mbyk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFs
RGF0YSwgcHJvdG90eXBlLCB0eXBlSW5mbywgYW5vbnltb3VzU2xvdENvdW50LCBjbGFzc0luZm8p
OworICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxT
dHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVhcCkpIFN0cnVjdHVyZShnbG9iYWxEYXRhLCBwcm90b3R5
cGUsIHR5cGVJbmZvLCBhbm9ueW1vdXNTbG90Q291bnQsIGNsYXNzSW5mbyk7CisgICAgICAgICAg
ICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworICAgICAgICAgICAgcmV0
dXJuIHN0cnVjdHVyZTsKICAgICAgICAgfQogCisgICAgcHJvdGVjdGVkOgorICAgICAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKKyAgICAgICAgeworICAg
ICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgICAgICBB
U1NFUlQobV9wcm90b3R5cGUpOworICAgICAgICAgICAgQVNTRVJUKG1fcHJvdG90eXBlLmlzT2Jq
ZWN0KCkgfHwgbV9wcm90b3R5cGUuaXNOdWxsKCkpOworICAgICAgICB9CisKKyAgICAgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIENyZWF0aW5nRWFybHlD
ZWxsVGFnKQorICAgICAgICB7CisgICAgICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9i
YWxEYXRhLCB0aGlzLCBDcmVhdGluZ0Vhcmx5Q2VsbCk7CisgICAgICAgICAgICBBU1NFUlQobV9w
cm90b3R5cGUpOworICAgICAgICAgICAgQVNTRVJUKG1fcHJvdG90eXBlLmlzTnVsbCgpKTsKKyAg
ICAgICAgICAgIEFTU0VSVCghZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOworICAgICAg
ICB9CisKKyAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyB2b2lkIGR1bXBTdGF0aXN0aWNzKCk7
CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogYWRkUHJvcGVydHlUcmFuc2l0aW9uKEpTR2xv
YmFsRGF0YSYsIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgdW5z
aWduZWQgYXR0cmlidXRlcywgSlNDZWxsKiBzcGVjaWZpY1ZhbHVlLCBzaXplX3QmIG9mZnNldCk7
CkBAIC0xNjEsNyArMTgwLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBTdHJ1
Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgICAg
IHsKICAgICAgICAgICAgIEFTU0VSVCghZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVTdHJ1Y3R1cmUpOwot
ICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFN0cnVjdHVyZT4oZ2xvYmFsRGF0
YS5oZWFwKSkgU3RydWN0dXJlKGdsb2JhbERhdGEpOworICAgICAgICAgICAgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVhcCkp
IFN0cnVjdHVyZShnbG9iYWxEYXRhKTsKKyAgICAgICAgICAgIHN0cnVjdHVyZS0+ZmluaXNoQ3Jl
YXRpb24oZ2xvYmFsRGF0YSwgQ3JlYXRpbmdFYXJseUNlbGwpOworICAgICAgICAgICAgcmV0dXJu
IHN0cnVjdHVyZTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIEpTX0VYUE9S
VERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTE3NCw3ICsxOTUsOSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgY29uc3QgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIEFTU0VSVChnbG9iYWxEYXRhLnN0cnVjdHVyZVN0cnVjdHVyZSk7Ci0gICAgICAgICAg
ICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9iYWxEYXRhLmhlYXApKSBT
dHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIFN0cnVjdHVyZSog
bmV3U3RydWN0dXJlID0gbmV3IChhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9iYWxEYXRhLmhl
YXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIG5ld1N0
cnVjdHVyZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAgICAgICAgICByZXR1cm4g
bmV3U3RydWN0dXJlOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB0eXBlZGVmIGVudW0g
eyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNo
YWluLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmNw
cAppbmRleCA4MGJlOThlYmM0NWY0YTRiOWMxYmFiNGYyOTQ4NTQ4MjZjZTk3Y2E4Li4zZTBmMDI4
ZWI3MDdjN2UxMTcxMWU4MGFlODRmOTI5ODgzOTA4YTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3BwCkBAIC0zNCwxMCArMzQsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAKIENsYXNzSW5mbyBTdHJ1Y3R1cmVDaGFpbjo6c19pbmZvID0g
eyAiU3RydWN0dXJlQ2hhaW4iLCAwLCAwLCAwIH07CiAKLVN0cnVjdHVyZUNoYWluOjpTdHJ1Y3R1
cmVDaGFpbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBT
dHJ1Y3R1cmUqIGhlYWQpCitTdHJ1Y3R1cmVDaGFpbjo6U3RydWN0dXJlQ2hhaW4oSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTQ2VsbChnbG9i
YWxEYXRhLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgaGVh
ZCk7CiB9CiAKIFN0cnVjdHVyZUNoYWluOjp+U3RydWN0dXJlQ2hhaW4oKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmgKaW5kZXggYTVlNGEwYmJiMzk5
YmI5ZTFmMTFjZjM5NzQzMjRhZjg1NDY0YjM5NC4uZDFiMzI0MmE4NDFiZTdjMWU0MTRjMjQ0MTM1
NDFkMzMyMzk2NzFmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlQ2hhaW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmVDaGFpbi5oCkBAIC00Nyw3ICs0Nyw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IHN0YXRpYyBTdHJ1Y3R1cmVDaGFpbiogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwg
U3RydWN0dXJlKiBoZWFkKQogICAgICAgICB7IAotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxs
b2NhdGVDZWxsPFN0cnVjdHVyZUNoYWluPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmVDaGFp
bihnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnN0cnVjdHVyZUNoYWluU3RydWN0dXJlLmdldCgpLCBo
ZWFkKTsgCisgICAgICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogY2hhaW4gPSBuZXcgKGFsbG9jYXRl
Q2VsbDxTdHJ1Y3R1cmVDaGFpbj4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlQ2hhaW4oZ2xv
YmFsRGF0YSwgZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVDaGFpblN0cnVjdHVyZS5nZXQoKSk7CisgICAg
ICAgICAgICBjaGFpbi0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgaGVhZCk7CisgICAgICAg
ICAgICByZXR1cm4gY2hhaW47CiAgICAgICAgIH0KICAgICAgICAgV3JpdGVCYXJyaWVyPFN0cnVj
dHVyZT4qIGhlYWQoKSB7IHJldHVybiBtX3ZlY3Rvci5nZXQoKTsgfQogICAgICAgICB2b2lkIHZp
c2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKQEAgLTcyLDcgKzc0LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFN0cnVjdHVyZUNoYWluKEpT
R2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIFN0cnVjdHVyZSogaGVhZCk7CisgICAgICAgIFN0cnVj
dHVyZUNoYWluKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwogICAgICAgICB+U3RydWN0dXJl
Q2hhaW4oKTsKICAgICAgICAgT3duQXJyYXlQdHI8V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gPiBt
X3ZlY3RvcjsKICAgICB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105390</attachid>
            <date>2011-08-26 12:27:55 -0700</date>
            <delta_ts>2011-08-26 15:33:06 -0700</delta_ts>
            <desc>Fixing review issues</desc>
            <filename>bug-66957-20110826122754.patch</filename>
            <type>text/plain</type>
            <size>24659</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM4NDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDk0
ZTE1NmI0OWRlNmE2NTg3YjIxMDcwYzZmODQxNGFkMTg4MWExZTEuLmY4ZWU3MzFkY2VjNTA2OWE1
ZjEzMWNlNjgxMjIwZDA3NDk0OGQ3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDU5IEBACiAyMDExLTA4LTI1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0cnVj
dG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICgyLzcpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Njk1NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvbXBsZXRlZCB0aGUgc2Vjb25kIGxldmVsIG9mIHRoZSBy
ZWZhY3RvcmluZyB0byBhZGQgZmluaXNoQ3JlYXRpb24oKQorICAgICAgICBtZXRob2RzIHRvIGFs
bCBjbGFzc2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAor
ICAgICAgICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFi
bGUuaDoKKyAgICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OkV4ZWN1dGFibGVCYXNlKToKKyAg
ICAgICAgKEpTQzo6RXhlY3V0YWJsZUJhc2U6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Ok5hdGl2
ZUV4ZWN1dGFibGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6Ok5hdGl2ZUV4ZWN1dGFibGU6OmZp
bmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6TmF0aXZlRXhlY3V0YWJsZTo6TmF0aXZlRXhl
Y3V0YWJsZSk6CisgICAgICAgIChKU0M6OlNjcmlwdEV4ZWN1dGFibGU6OlNjcmlwdEV4ZWN1dGFi
bGUpOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgICogcnVudGltZS9HZXR0ZXJTZXR0ZXIuaDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0
dGVyOjpHZXR0ZXJTZXR0ZXIpOgorICAgICAgICAoSlNDOjpHZXR0ZXJTZXR0ZXI6OmNyZWF0ZSk6
CisgICAgICAgICogcnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5oOgorICAgICAgICAoSlNDOjpK
U0FQSVZhbHVlV3JhcHBlcjo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6SlNBUElWYWx1ZVdyYXBw
ZXI6OkpTQVBJVmFsdWVXcmFwcGVyKToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6Cisg
ICAgICAgIChKU0M6OkpTTm9uRmluYWxPYmplY3Q6OkpTTm9uRmluYWxPYmplY3QpOgorICAgICAg
ICAoSlNDOjpKU05vbkZpbmFsT2JqZWN0OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgIChKU0M6
OkpTRmluYWxPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OkpTRmluYWxPYmplY3Q6OmZp
bmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6SlNGaW5hbE9iamVjdDo6SlNGaW5hbE9iamVj
dCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpKU09iamVjdCk6CisgICAgICAgICogcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5h
bWVJdGVyYXRvcjo6SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcik6CisgICAgICAgIChKU0M6OkpTUHJv
cGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yLmg6CisgICAgICAgIChKU0M6OkpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNy
ZWF0ZSk6CisgICAgICAgICogcnVudGltZS9SZWdFeHAuY3BwOgorICAgICAgICAoSlNDOjpSZWdF
eHA6OlJlZ0V4cCk6CisgICAgICAgIChKU0M6OlJlZ0V4cDo6Y3JlYXRlV2l0aG91dENhY2hpbmcp
OgorICAgICAgICAqIHJ1bnRpbWUvU2NvcGVDaGFpbi5oOgorICAgICAgICAoSlNDOjpTY29wZUNo
YWluTm9kZTo6U2NvcGVDaGFpbk5vZGUpOgorICAgICAgICAoSlNDOjpTY29wZUNoYWluTm9kZTo6
Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6
OlN0cnVjdHVyZTo6U3RydWN0dXJlKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVyZS5oOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZVN0cnVj
dHVyZSk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHA6CisgICAgICAgIChK
U0M6OlN0cnVjdHVyZUNoYWluOjpTdHJ1Y3R1cmVDaGFpbik6CisgICAgICAgICogcnVudGltZS9T
dHJ1Y3R1cmVDaGFpbi5oOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVDaGFpbjo6Y3JlYXRlKToK
KworMjAxMS0wOC0yNSAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CiAgICAgICAgIEZpeGluZyBicm9rZW4gYnVpbGQgZHVlIHRvIHVudXNlZCB2YXJpYWJsZXMgaW4g
cmVsZWFzZSBtb2RlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NzAwNAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9F
eGVjdXRhYmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgK
aW5kZXggZWY3MjcyYmEwZWEzZDhlMmEyYTc1MDBhNGZlYWQwNTAzZmY2Y2UwNS4uNGRjYWQ4YjBk
ODI3NWM4OGM0MDYwMjZjNTc4YjJkOWM2MTYzNTc3NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0V4ZWN1dGFibGUuaApAQCAtNTgsNyArNTgsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgICAgICwgbV9udW1QYXJhbWV0ZXJzRm9yQ2FsbChudW1QYXJhbWV0ZXJzKQogICAg
ICAgICAgICAgLCBtX251bVBhcmFtZXRlcnNGb3JDb25zdHJ1Y3QobnVtUGFyYW1ldGVycykKICAg
ICAgICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgICAg
IH0KIAogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSkKQEAgLTc1LDcgKzc0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEV4
ZWN1dGFibGVCYXNlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgaW50IG51bVBhcmFtZXRlcnMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxFeGVjdXRhYmxlQmFzZT4oZ2xvYmFsRGF0YS5oZWFwKSkg
RXhlY3V0YWJsZUJhc2UoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBudW1QYXJhbWV0ZXJzKTsKKyAg
ICAgICAgICAgIEV4ZWN1dGFibGVCYXNlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNlbGw8
RXhlY3V0YWJsZUJhc2U+KGdsb2JhbERhdGEuaGVhcCkpIEV4ZWN1dGFibGVCYXNlKGdsb2JhbERh
dGEsIHN0cnVjdHVyZSwgbnVtUGFyYW1ldGVycyk7CisgICAgICAgICAgICBleGVjdXRhYmxlLT5m
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgICAgIHJldHVybiBleGVjdXRhYmxl
OwogICAgICAgICB9CiAKICAgICAgICAgYm9vbCBpc0hvc3RGdW5jdGlvbigpIGNvbnN0CkBAIC0x
ODAsOSArMTgxLDEyIEBAIG5hbWVzcGFjZSBKU0MgewogI2lmIEVOQUJMRShKSVQpCiAgICAgICAg
IHN0YXRpYyBOYXRpdmVFeGVjdXRhYmxlKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgY2FsbFRodW5rLCBOYXRpdmVGdW5jdGlvbiBmdW5jdGlv
biwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyIGNvbnN0cnVjdFRodW5rLCBOYXRpdmVGdW5jdGlvbiBj
b25zdHJ1Y3RvcikKICAgICAgICAgeworICAgICAgICAgICAgTmF0aXZlRXhlY3V0YWJsZSogZXhl
Y3V0YWJsZTsKICAgICAgICAgICAgIGlmICghY2FsbFRodW5rKQotICAgICAgICAgICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVFeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXAp
KSBOYXRpdmVFeGVjdXRhYmxlKGdsb2JhbERhdGEsIEpJVENvZGUoKSwgZnVuY3Rpb24sIEpJVENv
ZGUoKSwgY29uc3RydWN0b3IpOwotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxs
PE5hdGl2ZUV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUoZ2xv
YmFsRGF0YSwgSklUQ29kZTo6SG9zdEZ1bmN0aW9uKGNhbGxUaHVuayksIGZ1bmN0aW9uLCBKSVRD
b2RlOjpIb3N0RnVuY3Rpb24oY29uc3RydWN0VGh1bmspLCBjb25zdHJ1Y3Rvcik7CisgICAgICAg
ICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1dGFibGU+
KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgSklUQ29kZSgp
LCBmdW5jdGlvbiwgSklUQ29kZSgpLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUV4ZWN1
dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIE5hdGl2ZUV4ZWN1dGFibGUoZ2xvYmFsRGF0YSwgSklU
Q29kZTo6SG9zdEZ1bmN0aW9uKGNhbGxUaHVuayksIGZ1bmN0aW9uLCBKSVRDb2RlOjpIb3N0RnVu
Y3Rpb24oY29uc3RydWN0VGh1bmspLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAgICByZXR1cm4g
ZXhlY3V0YWJsZTsKICAgICAgICAgfQogI2Vsc2UKICAgICAgICAgc3RhdGljIE5hdGl2ZUV4ZWN1
dGFibGUqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIE5hdGl2ZUZ1bmN0aW9uIGZ1
bmN0aW9uLCBOYXRpdmVGdW5jdGlvbiBjb25zdHJ1Y3RvcikKQEAgLTE5OCw3ICsyMDIsMTkgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgcHJvdG8pIHsgcmV0dXJuIFN0cnVj
dHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvLCBUeXBlSW5mbyhMZWFmVHlwZSwgU3RydWN0
dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOyB9CiAgICAgICAgIAogICAg
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKLSAgICAKKworICAgIHByb3RlY3Rl
ZDoKKyNpZiBFTkFCTEUoSklUKQorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSklUQ29kZSBjYWxsVGh1bmssIEpJVENvZGUgY29uc3RydWN0VGh1
bmspCisgICAgICAgIHsKKyAgICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERh
dGEpOworICAgICAgICAgICAgbV9qaXRDb2RlRm9yQ2FsbCA9IGNhbGxUaHVuazsKKyAgICAgICAg
ICAgIG1faml0Q29kZUZvckNvbnN0cnVjdCA9IGNvbnN0cnVjdFRodW5rOworICAgICAgICAgICAg
bV9qaXRDb2RlRm9yQ2FsbFdpdGhBcml0eUNoZWNrID0gY2FsbFRodW5rLmFkZHJlc3NGb3JDYWxs
KCk7CisgICAgICAgICAgICBtX2ppdENvZGVGb3JDb25zdHJ1Y3RXaXRoQXJpdHlDaGVjayA9IGNv
bnN0cnVjdFRodW5rLmFkZHJlc3NGb3JDYWxsKCk7CisgICAgICAgIH0KKyNlbmRpZgorIAogICAg
IHByaXZhdGU6CiAjaWYgRU5BQkxFKEpJVCkKICAgICAgICAgTmF0aXZlRXhlY3V0YWJsZShKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpJVENvZGUgY2FsbFRodW5rLCBOYXRpdmVGdW5jdGlvbiBm
dW5jdGlvbiwgSklUQ29kZSBjb25zdHJ1Y3RUaHVuaywgTmF0aXZlRnVuY3Rpb24gY29uc3RydWN0
b3IpCkBAIC0yMDYsMTAgKzIyMiw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgLCBt
X2Z1bmN0aW9uKGZ1bmN0aW9uKQogICAgICAgICAgICAgLCBtX2NvbnN0cnVjdG9yKGNvbnN0cnVj
dG9yKQogICAgICAgICB7Ci0gICAgICAgICAgICBtX2ppdENvZGVGb3JDYWxsID0gY2FsbFRodW5r
OwotICAgICAgICAgICAgbV9qaXRDb2RlRm9yQ29uc3RydWN0ID0gY29uc3RydWN0VGh1bms7Ci0g
ICAgICAgICAgICBtX2ppdENvZGVGb3JDYWxsV2l0aEFyaXR5Q2hlY2sgPSBjYWxsVGh1bmsuYWRk
cmVzc0ZvckNhbGwoKTsKLSAgICAgICAgICAgIG1faml0Q29kZUZvckNvbnN0cnVjdFdpdGhBcml0
eUNoZWNrID0gY29uc3RydWN0VGh1bmsuYWRkcmVzc0ZvckNhbGwoKTsKKyAgICAgICAgICAgIGZp
bmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGNhbGxUaHVuaywgY29uc3RydWN0VGh1bmspOwogICAg
ICAgICB9CiAjZWxzZQogICAgICAgICBOYXRpdmVFeGVjdXRhYmxlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgTmF0aXZlRnVuY3Rpb24gZnVuY3Rpb24sIE5hdGl2ZUZ1bmN0aW9uIGNvbnN0cnVj
dG9yKQpAQCAtMjE3LDYgKzIzMCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgLCBt
X2Z1bmN0aW9uKGZ1bmN0aW9uKQogICAgICAgICAgICAgLCBtX2NvbnN0cnVjdG9yKGNvbnN0cnVj
dG9yKQogICAgICAgICB7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsK
ICAgICAgICAgfQogI2VuZGlmCiAKQEAgLTIzNSwxMiArMjQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAgICAgICAgICwgbV9mZWF0dXJl
cyhpc0luU3RyaWN0Q29udGV4dCA/IFN0cmljdE1vZGVGZWF0dXJlIDogMCkKICAgICAgICAgewot
I2lmIEVOQUJMRShDT0RFQkxPQ0tfU0FNUExJTkcpCi0gICAgICAgICAgICBpZiAoU2FtcGxpbmdU
b29sKiBzYW1wbGVyID0gZ2xvYmFsRGF0YS5pbnRlcnByZXRlci0+c2FtcGxlcigpKQotICAgICAg
ICAgICAgICAgIHNhbXBsZXItPm5vdGlmeU9mU2NvcGUoZ2xvYmFsRGF0YSwgdGhpcyk7Ci0jZWxz
ZQotICAgICAgICAgICAgVU5VU0VEX1BBUkFNKGdsb2JhbERhdGEpOwotI2VuZGlmCisgICAgICAg
ICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICAgICAgfQogCiAgICAgICAgIFNj
cmlwdEV4ZWN1dGFibGUoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGlzSW5TdHJpY3RDb250ZXh0KQpAQCAtMjQ4LDEy
ICsyNTcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICwgbV9zb3VyY2Uoc291cmNl
KQogICAgICAgICAgICAgLCBtX2ZlYXR1cmVzKGlzSW5TdHJpY3RDb250ZXh0ID8gU3RyaWN0TW9k
ZUZlYXR1cmUgOiAwKQogICAgICAgICB7Ci0jaWYgRU5BQkxFKENPREVCTE9DS19TQU1QTElORykK
LSAgICAgICAgICAgIGlmIChTYW1wbGluZ1Rvb2wqIHNhbXBsZXIgPSBleGVjLT5nbG9iYWxEYXRh
KCkuaW50ZXJwcmV0ZXItPnNhbXBsZXIoKSkKLSAgICAgICAgICAgICAgICBzYW1wbGVyLT5ub3Rp
ZnlPZlNjb3BlKGV4ZWMtPmdsb2JhbERhdGEoKSwgdGhpcyk7Ci0jZWxzZQotICAgICAgICAgICAg
VU5VU0VEX1BBUkFNKGV4ZWMpOwotI2VuZGlmCisgICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihl
eGVjLT5nbG9iYWxEYXRhKCkpOwogICAgICAgICB9CiAKICAgICAgICAgY29uc3QgU291cmNlQ29k
ZSYgc291cmNlKCkgeyByZXR1cm4gbV9zb3VyY2U7IH0KQEAgLTI3MCw3ICsyNzQsMTcgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1bmxpbmtDYWxscygpID0gMDsKICAg
ICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOworCiAgICAgcHJv
dGVjdGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSkKKyAgICAgICAgeworICAgICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFs
RGF0YSk7CisjaWYgRU5BQkxFKENPREVCTE9DS19TQU1QTElORykKKyAgICAgICAgICAgIGlmIChT
YW1wbGluZ1Rvb2wqIHNhbXBsZXIgPSBnbG9iYWxEYXRhLmludGVycHJldGVyLT5zYW1wbGVyKCkp
CisgICAgICAgICAgICAgICAgc2FtcGxlci0+bm90aWZ5T2ZTY29wZShnbG9iYWxEYXRhLCB0aGlz
KTsKKyNlbmRpZgorICAgICAgICB9CisKICAgICAgICAgdm9pZCByZWNvcmRQYXJzZShDb2RlRmVh
dHVyZXMgZmVhdHVyZXMsIGJvb2wgaGFzQ2FwdHVyZWRWYXJpYWJsZXMsIGludCBmaXJzdExpbmUs
IGludCBsYXN0TGluZSkKICAgICAgICAgewogICAgICAgICAgICAgbV9mZWF0dXJlcyA9IGZlYXR1
cmVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2V0dGVyU2V0
dGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAppbmRl
eCBlY2VjNmFkZWU4Y2MyNzRkOWEzNzc0ZjNkNGRjOGE2ZjliYTg0ZmM4Li41ZWRhMWFkZTcxZjI5
M2FlOTg2NGJmZGJmMjdjOTRlZWE1MWUxOWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9HZXR0ZXJTZXR0ZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9HZXR0ZXJTZXR0ZXIuaApAQCAtNDEsNyArNDEsNiBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgR2V0dGVyU2V0dGVyKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgICAgIDogSlND
ZWxsKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLmdldHRlclNldHRlclN0
cnVjdHVyZS5nZXQoKSkKICAgICAgICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZXhl
Yy0+Z2xvYmFsRGF0YSgpKTsKICAgICAgICAgfQogCiAgICAgcHVibGljOgpAQCAtNDksNyArNDgs
OSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgR2V0dGVyU2V0dGVyKiBjcmVh
dGUoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8R2V0dGVyU2V0dGVyPigqZXhlYy0+aGVhcCgpKSkgR2V0dGVyU2V0dGVyKGV4
ZWMpOworICAgICAgICAgICAgR2V0dGVyU2V0dGVyKiBnZXR0ZXJTZXR0ZXIgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxHZXR0ZXJTZXR0ZXI+KCpleGVjLT5oZWFwKCkpKSBHZXR0ZXJTZXR0ZXIoZXhlYyk7
CisgICAgICAgICAgICBnZXR0ZXJTZXR0ZXItPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERh
dGEoKSk7CisgICAgICAgICAgICByZXR1cm4gZ2V0dGVyU2V0dGVyOwogICAgICAgICB9CiAKICAg
ICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FQSVZhbHVlV3JhcHBlci5oCmluZGV4IDU0
NTg2MGJmZDEyMzc0MTc2MTdiZDE1ZmMwNGY5Mjk0ZmY3YTgwMTguLjQzMGM4YzU2MDMxZmU0YTk1
ZDZjNzU3ZDVjMWE1MzllNGMyOWRkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQVBJVmFsdWVXcmFwcGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNBUElWYWx1ZVdyYXBwZXIuaApAQCAtNDgsNyArNDgsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBKU0FQSVZhbHVlV3JhcHBlciogY3JlYXRl
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkgCiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0FQSVZhbHVlV3JhcHBlcj4oKmV4ZWMtPmhlYXAo
KSkpIEpTQVBJVmFsdWVXcmFwcGVyKGV4ZWMsIHZhbHVlKTsKKyAgICAgICAgICAgIEpTQVBJVmFs
dWVXcmFwcGVyKiB3cmFwcGVyID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNBUElWYWx1ZVdyYXBwZXI+
KCpleGVjLT5oZWFwKCkpKSBKU0FQSVZhbHVlV3JhcHBlcihleGVjKTsKKyAgICAgICAgICAgIHdy
YXBwZXItPmZpbmlzaENyZWF0aW9uKGV4ZWMsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB3
cmFwcGVyOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CkBAIC02MCwxMCArNjIsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgSlNBUElW
YWx1ZVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQorICAgICAgICBKU0FQ
SVZhbHVlV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICA6IEpTQ2VsbChleGVj
LT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5hcGlXcmFwcGVyU3RydWN0dXJlLmdl
dCgpKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLCB2YWx1ZSk7
CiAgICAgICAgIH0KIAogICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4gbV92YWx1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDViZDMyMmI0OTQ5Zjli
ZWMwODhmMDhmMzMxYzE4MTUyMGE4YzM0ZWEuLmQ4ZjZiZmM3NmNiNmNiZmM2OTRjZWUzM2FhZDhk
NmU5OGZlYWVkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaApA
QCAtMzYxLDYgKzM2MSwxMiBAQCBDT01QSUxFX0FTU0VSVCgoSlNGaW5hbE9iamVjdF9pbmxpbmVT
dG9yYWdlQ2FwYWNpdHkgPj0gSlNOb25GaW5hbE9iamVjdF9pbmxpbmVTdAogICAgICAgICBleHBs
aWNpdCBKU05vbkZpbmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgICAgICAgICA6IEpTT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVy
ZSwgbV9pbmxpbmVTdG9yYWdlKQogICAgICAgICB7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhKTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtX2lubGluZVN0b3JhZ2UpOwogICAgICAgICAgICAg
QVNTRVJUKCEoT0JKRUNUX09GRlNFVE9GKEpTTm9uRmluYWxPYmplY3QsIG1faW5saW5lU3RvcmFn
ZSkgJSBzaXplb2YoZG91YmxlKSkpOwogICAgICAgICAgICAgQVNTRVJUKHRoaXMtPnN0cnVjdHVy
ZSgpLT5wcm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpID09IEpTTm9uRmluYWxPYmplY3RfaW5saW5l
U3RvcmFnZUNhcGFjaXR5KTsKICAgICAgICAgfQpAQCAtMzg0LDcgKzM5MCw5IEBAIENPTVBJTEVf
QVNTRVJUKChKU0ZpbmFsT2JqZWN0X2lubGluZVN0b3JhZ2VDYXBhY2l0eSA+PSBKU05vbkZpbmFs
T2JqZWN0X2lubGluZVN0CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgSlNGaW5hbE9iamVjdCog
Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0ZpbmFsT2JqZWN0PigqZXhl
Yy0+aGVhcCgpKSkgSlNGaW5hbE9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSk7
CisgICAgICAgICAgICBKU0ZpbmFsT2JqZWN0KiBmaW5hbE9iamVjdCA9IG5ldyAoYWxsb2NhdGVD
ZWxsPEpTRmluYWxPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKU0ZpbmFsT2JqZWN0KGV4ZWMtPmds
b2JhbERhdGEoKSwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGZpbmFsT2JqZWN0LT5maW5pc2hD
cmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOworICAgICAgICAgICAgcmV0dXJuIGZpbmFsT2Jq
ZWN0OwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90b3R5cGUpCkBAIC0zOTIs
MTIgKzQwMCwxOCBAQCBDT01QSUxFX0FTU0VSVCgoSlNGaW5hbE9iamVjdF9pbmxpbmVTdG9yYWdl
Q2FwYWNpdHkgPj0gSlNOb25GaW5hbE9iamVjdF9pbmxpbmVTdAogICAgICAgICAgICAgcmV0dXJu
IFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2JhbERhdGEsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0
VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwogICAg
ICAgICB9CiAKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtX2lubGluZVN0b3JhZ2UpOworICAgICAgICAgICAgQVNT
RVJUKCEoT0JKRUNUX09GRlNFVE9GKEpTRmluYWxPYmplY3QsIG1faW5saW5lU3RvcmFnZSkgJSBz
aXplb2YoZG91YmxlKSkpOworICAgICAgICAgICAgQVNTRVJUKHRoaXMtPnN0cnVjdHVyZSgpLT5w
cm9wZXJ0eVN0b3JhZ2VDYXBhY2l0eSgpID09IEpTRmluYWxPYmplY3RfaW5saW5lU3RvcmFnZUNh
cGFjaXR5KTsKKyAgICAgICAgfQorCiAgICAgcHJpdmF0ZToKICAgICAgICAgZXhwbGljaXQgSlNG
aW5hbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJl
KQogICAgICAgICAgICAgOiBKU09iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIG1faW5saW5l
U3RvcmFnZSkKICAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKE9CSkVDVF9PRkZTRVRPRihK
U0ZpbmFsT2JqZWN0LCBtX2lubGluZVN0b3JhZ2UpICUgc2l6ZW9mKGRvdWJsZSkgPT0gMCk7Ci0g
ICAgICAgICAgICBBU1NFUlQodGhpcy0+c3RydWN0dXJlKCktPnByb3BlcnR5U3RvcmFnZUNhcGFj
aXR5KCkgPT0gSlNGaW5hbE9iamVjdF9pbmxpbmVTdG9yYWdlQ2FwYWNpdHkpOwogICAgICAgICB9
CiAKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNPYmpl
Y3Q6OlN0cnVjdHVyZUZsYWdzIHwgSXNKU0ZpbmFsT2JqZWN0OwpAQCAtNDQ2LDcgKzQ2MCw2IEBA
IGlubGluZSBKU09iamVjdDo6SlNPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgUHJvcGVyCiAgICAgOiBKU0NlbGwoZ2xvYmFsRGF0YSwgc3RydWN0
dXJlKQogICAgICwgbV9wcm9wZXJ0eVN0b3JhZ2UoaW5saW5lU3RvcmFnZSkKIHsKLSAgICBmaW5p
c2hDcmVhdGlvbihnbG9iYWxEYXRhLCBpbmxpbmVTdG9yYWdlKTsKIH0KIAogaW5saW5lIEpTT2Jq
ZWN0Ojp+SlNPYmplY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcAppbmRleCAwMmQyNWMyZjg0YzRiMjBhZTA5
YmIzNjEyZTY1MTU3ZjIwNmQwYzZjLi5jYzEyMmJkN2RlY2M4MzZlYTlmM2QxNzBkN2YzOGIwMWMy
NzVjY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcApAQCAtNDMsNyArNDMsNiBAQCBpbmxpbmUgSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvcjo6SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcihFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TgogICAgICwgbV9qc1N0cmluZ3NTaXplKHByb3BlcnR5TmFtZUFycmF5RGF0YS0+
cHJvcGVydHlOYW1lVmVjdG9yKCkuc2l6ZSgpKQogICAgICwgbV9qc1N0cmluZ3MoYWRvcHRBcnJh
eVB0cihuZXcgV3JpdGVCYXJyaWVyPFVua25vd24+W21fanNTdHJpbmdzU2l6ZV0pKQogewotICAg
IGZpbmlzaENyZWF0aW9uKGV4ZWMsIHByb3BlcnR5TmFtZUFycmF5RGF0YSk7CiB9CiAKIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IqIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmNyZWF0ZShFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiBvKQpAQCAtNjEsNiArNjAsNyBAQCBKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdAogICAgICAgICBudW1DYWNoZWFibGVTbG90cyA9IG8tPnN0cnVjdHVyZSgpLT5wcm9w
ZXJ0eVN0b3JhZ2VTaXplKCk7CiAgICAgCiAgICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcioganNQ
cm9wZXJ0eU5hbWVJdGVyYXRvciA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTUHJvcGVydHlOYW1lSXRl
cmF0b3I+KCpleGVjLT5oZWFwKCkpKSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKGV4ZWMsIHByb3Bl
cnR5TmFtZXMuZGF0YSgpLCBudW1DYWNoZWFibGVTbG90cyk7CisgICAganNQcm9wZXJ0eU5hbWVJ
dGVyYXRvci0+ZmluaXNoQ3JlYXRpb24oZXhlYywgcHJvcGVydHlOYW1lcy5kYXRhKCkpOwogCiAg
ICAgaWYgKG8tPnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkKICAgICAgICAgcmV0dXJuIGpz
UHJvcGVydHlOYW1lSXRlcmF0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKaW5kZXggNDIwMmViYjU0ZDM4MzVmNjIx
MDRiZGIyYjgzNTU4OGE0MTYwOWU5ZC4uMmJkODEwZmVkY2Q5MWMzMTJkNjYzZTQyMWZmMDM2ODEw
MDQzNGE3NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
UHJvcGVydHlOYW1lSXRlcmF0b3IuaApAQCAtNDgsNyArNDgsOSBAQCBuYW1lc3BhY2UgSlNDIHsK
ICAgICAgICAgc3RhdGljIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGNyZWF0ZShFeGVjU3RhdGUq
LCBKU09iamVjdCopOwogICAgICAgICBzdGF0aWMgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogY3Jl
YXRlKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXlEYXRhKiBwcm9wZXJ0eU5hbWVB
cnJheURhdGEsIHNpemVfdCBudW1DYWNoZWFibGVTbG90KQogICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcj4oKmV4ZWMt
PmhlYXAoKSkpIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IoZXhlYywgcHJvcGVydHlOYW1lQXJyYXlE
YXRhLCBudW1DYWNoZWFibGVTbG90KTsKKyAgICAgICAgICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0
b3IqIGl0ZXJhdG9yID0gbmV3IChhbGxvY2F0ZUNlbGw8SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcj4o
KmV4ZWMtPmhlYXAoKSkpIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IoZXhlYywgcHJvcGVydHlOYW1l
QXJyYXlEYXRhLCBudW1DYWNoZWFibGVTbG90KTsKKyAgICAgICAgICAgIGl0ZXJhdG9yLT5maW5p
c2hDcmVhdGlvbihleGVjLCBwcm9wZXJ0eU5hbWVBcnJheURhdGEpOworICAgICAgICAgICAgcmV0
dXJuIGl0ZXJhdG9yOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgU3RydWN0
dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHBy
b3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4
cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuY3BwCmluZGV4IGQ5
MGNkNTQzNzE3MmIxMjYyOGY3OThlNjI3NzE3MDM4Y2M2ZGIxOTQuLjRlZGQ4MmM1OGE2NTE5NjA1
MDQ2ZmUzZjE5NDdmYjhkY2FiNGM2NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwLmNwcApAQCAtODgsNyArODgsNiBAQCBSZWdFeHA6OlJlZ0V4cChKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIGNvbnN0IFVTdHJpbmcmIHBhdHRlcm5TdHJpbmcsIFJlZ0V4cEZsYQogICAg
ICwgbV9ydE1hdGNoRm91bmRDb3VudCgwKQogI2VuZGlmCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24o
Z2xvYmFsRGF0YSk7CiB9CiAKIHZvaWQgUmVnRXhwOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEpCkBAIC0xMDcsNyArMTA2LDkgQEAgUmVnRXhwOjp+UmVnRXhwKCkKIAog
UmVnRXhwKiBSZWdFeHA6OmNyZWF0ZVdpdGhvdXRDYWNoaW5nKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgY29uc3QgVVN0cmluZyYgcGF0dGVyblN0cmluZywgUmVnRXhwRmxhZ3MgZmxhZ3MpCiB7
Ci0gICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFJlZ0V4cD4oZ2xvYmFsRGF0YS5oZWFwKSkg
UmVnRXhwKGdsb2JhbERhdGEsIHBhdHRlcm5TdHJpbmcsIGZsYWdzKTsKKyAgICBSZWdFeHAqIHJl
Z0V4cCA9IG5ldyAoYWxsb2NhdGVDZWxsPFJlZ0V4cD4oZ2xvYmFsRGF0YS5oZWFwKSkgUmVnRXhw
KGdsb2JhbERhdGEsIHBhdHRlcm5TdHJpbmcsIGZsYWdzKTsKKyAgICByZWdFeHAtPmZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEpOworICAgIHJldHVybiByZWdFeHA7CiB9CiAKIFJlZ0V4cCogUmVn
RXhwOjpjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBVU3RyaW5nJiBwYXR0
ZXJuU3RyaW5nLCBSZWdFeHBGbGFncyBmbGFncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1Njb3BlQ2hhaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Njb3BlQ2hhaW4uaAppbmRleCAwNjhkYzg1YjY1NDk3ZGEyNThlYmY0ODAzYWI5NmQ2NWEy
NDVmZTU1Li4xNzAwMWNjZmVlNjdkYTM5YjNjZTkzOTUzOGU4ODdhMmEyNTVmNTMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TY29wZUNoYWluLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NvcGVDaGFpbi5oCkBAIC00Myw3ICs0Myw2IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgLCBnbG9iYWxPYmplY3QoKmdsb2JhbERhdGEs
IHRoaXMsIGdsb2JhbE9iamVjdCkKICAgICAgICAgICAgICwgZ2xvYmFsVGhpcygqZ2xvYmFsRGF0
YSwgdGhpcywgZ2xvYmFsVGhpcykKICAgICAgICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRp
b24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVk
OgpAQCAtNTgsMTEgKzU3LDE1IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBT
Y29wZUNoYWluTm9kZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU2NvcGVDaGFpbk5vZGUqIG5l
eHQsIEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNPYmplY3QqIGdsb2JhbFRoaXMpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxTY29wZUNoYWluTm9kZT4oKmV4ZWMt
PmhlYXAoKSkpIFNjb3BlQ2hhaW5Ob2RlKG5leHQsIG9iamVjdCwgZ2xvYmFsRGF0YSwgZ2xvYmFs
T2JqZWN0LCBnbG9iYWxUaGlzKTsKKyAgICAgICAgICAgIFNjb3BlQ2hhaW5Ob2RlKiBub2RlID0g
bmV3IChhbGxvY2F0ZUNlbGw8U2NvcGVDaGFpbk5vZGU+KCpleGVjLT5oZWFwKCkpKSBTY29wZUNo
YWluTm9kZShuZXh0LCBvYmplY3QsIGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgZ2xvYmFsVGhp
cyk7CisgICAgICAgICAgICBub2RlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QpOworICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgICAgIH0KICAgICAgICAgc3Rh
dGljIFNjb3BlQ2hhaW5Ob2RlKiBjcmVhdGUoU2NvcGVDaGFpbk5vZGUqIG5leHQsIEpTT2JqZWN0
KiBvYmplY3QsIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNPYmplY3QqIGdsb2JhbFRoaXMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxTY29wZUNoYWluTm9kZT4oZ2xvYmFsRGF0YS0+aGVhcCkp
IFNjb3BlQ2hhaW5Ob2RlKG5leHQsIG9iamVjdCwgZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBn
bG9iYWxUaGlzKTsKKyAgICAgICAgICAgIFNjb3BlQ2hhaW5Ob2RlKiBub2RlID0gbmV3IChhbGxv
Y2F0ZUNlbGw8U2NvcGVDaGFpbk5vZGU+KGdsb2JhbERhdGEtPmhlYXApKSBTY29wZUNoYWluTm9k
ZShuZXh0LCBvYmplY3QsIGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgZ2xvYmFsVGhpcyk7Cisg
ICAgICAgICAgICBub2RlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3Qp
OworICAgICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAg
IEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmUuY3BwCmluZGV4IGZkYWU1ODQwZTVlYzIzNzQ4ZmNiMmIyYTJkZDI2Yzc3MzNi
YjhmNmUuLjMyYTJiZDNiMDhlNTM2ZTA0YWUzOTBkYTIwNGIxNTM3YTdlZTQ1MjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApAQCAtMTc2LDkgKzE3Niw2
IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1
ZSBwcm90b3R5cGUsIGNvbnN0IFR5cGVJbmZvCiAgICAgLCBtX3ByZXZlbnRFeHRlbnNpb25zKGZh
bHNlKQogICAgICwgbV9kaWRUcmFuc2l0aW9uKGZhbHNlKQogewotICAgIGZpbmlzaENyZWF0aW9u
KGdsb2JhbERhdGEpOwotICAgIEFTU0VSVChtX3Byb3RvdHlwZSk7Ci0gICAgQVNTRVJUKG1fcHJv
dG90eXBlLmlzT2JqZWN0KCkgfHwgbV9wcm90b3R5cGUuaXNOdWxsKCkpOwogfQogCiBjb25zdCBD
bGFzc0luZm8gU3RydWN0dXJlOjpzX2luZm8gPSB7ICJTdHJ1Y3R1cmUiLCAwLCAwLCAwIH07CkBA
IC0yMDAsMTAgKzE5Nyw2IEBAIFN0cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSkKICAgICAsIG1fcHJldmVudEV4dGVuc2lvbnMoZmFsc2UpCiAgICAgLCBtX2RpZFRy
YW5zaXRpb24oZmFsc2UpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgdGhpcywg
Q3JlYXRpbmdFYXJseUNlbGwpOwotICAgIEFTU0VSVChtX3Byb3RvdHlwZSk7Ci0gICAgQVNTRVJU
KG1fcHJvdG90eXBlLmlzTnVsbCgpKTsKLSAgICBBU1NFUlQoIWdsb2JhbERhdGEuc3RydWN0dXJl
U3RydWN0dXJlKTsKIH0KIAogU3RydWN0dXJlOjpTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBjb25zdCBTdHJ1Y3R1cmUqIHByZXZpb3VzKQpAQCAtMjIzLDkgKzIxNiw2IEBAIFN0
cnVjdHVyZTo6U3RydWN0dXJlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgU3RydWN0
dXJlKiBwcmV2aW91cykKICAgICAsIG1fcHJldmVudEV4dGVuc2lvbnMocHJldmlvdXMtPm1fcHJl
dmVudEV4dGVuc2lvbnMpCiAgICAgLCBtX2RpZFRyYW5zaXRpb24odHJ1ZSkKIHsKLSAgICBmaW5p
c2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKLSAgICBBU1NFUlQobV9wcm90b3R5cGUpOwotICAgIEFT
U0VSVChtX3Byb3RvdHlwZS5pc09iamVjdCgpIHx8IG1fcHJvdG90eXBlLmlzTnVsbCgpKTsKIH0K
IAogU3RydWN0dXJlOjp+U3RydWN0dXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RydWN0dXJlLmgKaW5kZXggZWZjNzVjNGFlNjUwZjMyYjkzMWMyYmQ5M2U5ZGYwNWU3MmI1ZjA0
Ny4uZDU1MTdkZGRmMTg2NTM5ZWU3MWYxNmQ1ZDQ3ZGQ2ZDE2ZDdhMzYzNSAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKQEAgLTY2LDkgKzY2LDI4IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoZ2xvYmFsRGF0YS5zdHJ1
Y3R1cmVTdHJ1Y3R1cmUpOwogICAgICAgICAgICAgQVNTRVJUKGNsYXNzSW5mbyk7Ci0gICAgICAg
ICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihnbG9iYWxEYXRhLmhlYXAp
KSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgcHJvdG90eXBlLCB0eXBlSW5mbywgYW5vbnltb3VzU2xv
dENvdW50LCBjbGFzc0luZm8pOworICAgICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBu
ZXcgKGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+KGdsb2JhbERhdGEuaGVhcCkpIFN0cnVjdHVyZShn
bG9iYWxEYXRhLCBwcm90b3R5cGUsIHR5cGVJbmZvLCBhbm9ueW1vdXNTbG90Q291bnQsIGNsYXNz
SW5mbyk7CisgICAgICAgICAgICBzdHJ1Y3R1cmUtPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEp
OworICAgICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZTsKICAgICAgICAgfQogCisgICAgcHJvdGVj
dGVkOgorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSkKKyAgICAgICAgeworICAgICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0
YSk7CisgICAgICAgICAgICBBU1NFUlQobV9wcm90b3R5cGUpOworICAgICAgICAgICAgQVNTRVJU
KG1fcHJvdG90eXBlLmlzT2JqZWN0KCkgfHwgbV9wcm90b3R5cGUuaXNOdWxsKCkpOworICAgICAg
ICB9CisKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIENyZWF0aW5nRWFybHlDZWxsVGFnKQorICAgICAgICB7CisgICAgICAgICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCB0aGlzLCBDcmVhdGluZ0Vhcmx5Q2VsbCk7CisgICAg
ICAgICAgICBBU1NFUlQobV9wcm90b3R5cGUpOworICAgICAgICAgICAgQVNTRVJUKG1fcHJvdG90
eXBlLmlzTnVsbCgpKTsKKyAgICAgICAgICAgIEFTU0VSVCghZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVT
dHJ1Y3R1cmUpOworICAgICAgICB9CisKKyAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyB2b2lk
IGR1bXBTdGF0aXN0aWNzKCk7CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogYWRkUHJvcGVy
dHlUcmFuc2l0aW9uKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnR5TmFtZSwgdW5zaWduZWQgYXR0cmlidXRlcywgSlNDZWxsKiBzcGVjaWZpY1ZhbHVl
LCBzaXplX3QmIG9mZnNldCk7CkBAIC0xNjEsNyArMTgwLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVCghZ2xvYmFsRGF0YS5zdHJ1
Y3R1cmVTdHJ1Y3R1cmUpOwotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFN0
cnVjdHVyZT4oZ2xvYmFsRGF0YS5oZWFwKSkgU3RydWN0dXJlKGdsb2JhbERhdGEpOworICAgICAg
ICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmU+
KGdsb2JhbERhdGEuaGVhcCkpIFN0cnVjdHVyZShnbG9iYWxEYXRhKTsKKyAgICAgICAgICAgIHN0
cnVjdHVyZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgQ3JlYXRpbmdFYXJseUNlbGwpOwor
ICAgICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZTsKICAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgc3RhdGljIEpTX0VYUE9SVERBVEEgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTE3NCw3
ICsxOTUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3Jl
YXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChnbG9iYWxEYXRhLnN0cnVjdHVyZVN0cnVj
dHVyZSk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8U3RydWN0dXJlPihn
bG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAg
ICAgICAgIFN0cnVjdHVyZSogbmV3U3RydWN0dXJlID0gbmV3IChhbGxvY2F0ZUNlbGw8U3RydWN0
dXJlPihnbG9iYWxEYXRhLmhlYXApKSBTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsK
KyAgICAgICAgICAgIG5ld1N0cnVjdHVyZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7Cisg
ICAgICAgICAgICByZXR1cm4gbmV3U3RydWN0dXJlOwogICAgICAgICB9CiAgICAgICAgIAogICAg
ICAgICB0eXBlZGVmIGVudW0geyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZUNoYWluLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZUNoYWluLmNwcAppbmRleCA4MGJlOThlYmM0NWY0YTRiOWMxYmFiNGYyOTQ4NTQ4
MjZjZTk3Y2E4Li4zZTBmMDI4ZWI3MDdjN2UxMTcxMWU4MGFlODRmOTI5ODgzOTA4YTE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uY3BwCkBA
IC0zNCwxMCArMzQsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAKIENsYXNzSW5mbyBTdHJ1Y3R1
cmVDaGFpbjo6c19pbmZvID0geyAiU3RydWN0dXJlQ2hhaW4iLCAwLCAwLCAwIH07CiAKLVN0cnVj
dHVyZUNoYWluOjpTdHJ1Y3R1cmVDaGFpbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBTdHJ1Y3R1cmUqIGhlYWQpCitTdHJ1Y3R1cmVDaGFpbjo6U3RydWN0
dXJlQ2hhaW4oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
ICAgICA6IEpTQ2VsbChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRp
b24oZ2xvYmFsRGF0YSwgaGVhZCk7CiB9CiAKIFN0cnVjdHVyZUNoYWluOjp+U3RydWN0dXJlQ2hh
aW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJl
Q2hhaW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUNoYWluLmgK
aW5kZXggYTVlNGEwYmJiMzk5YmI5ZTFmMTFjZjM5NzQzMjRhZjg1NDY0YjM5NC4uZDFiMzI0MmE4
NDFiZTdjMWU0MTRjMjQ0MTM1NDFkMzMyMzk2NzFmOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlQ2hhaW4uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmVDaGFpbi5oCkBAIC00Nyw3ICs0Nyw5IEBAIG5hbWVzcGFj
ZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBTdHJ1Y3R1cmVDaGFpbiogY3JlYXRlKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBoZWFkKQogICAgICAgICB7IAotICAgICAgICAg
ICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFN0cnVjdHVyZUNoYWluPihnbG9iYWxEYXRhLmhl
YXApKSBTdHJ1Y3R1cmVDaGFpbihnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLnN0cnVjdHVyZUNoYWlu
U3RydWN0dXJlLmdldCgpLCBoZWFkKTsgCisgICAgICAgICAgICBTdHJ1Y3R1cmVDaGFpbiogY2hh
aW4gPSBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJ1Y3R1cmVDaGFpbj4oZ2xvYmFsRGF0YS5oZWFwKSkg
U3RydWN0dXJlQ2hhaW4oZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5zdHJ1Y3R1cmVDaGFpblN0cnVj
dHVyZS5nZXQoKSk7CisgICAgICAgICAgICBjaGFpbi0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0
YSwgaGVhZCk7CisgICAgICAgICAgICByZXR1cm4gY2hhaW47CiAgICAgICAgIH0KICAgICAgICAg
V3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4qIGhlYWQoKSB7IHJldHVybiBtX3ZlY3Rvci5nZXQoKTsg
fQogICAgICAgICB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKQEAgLTcyLDcgKzc0
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IFN0cnVjdHVyZUNoYWluKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIFN0cnVjdHVyZSogaGVh
ZCk7CisgICAgICAgIFN0cnVjdHVyZUNoYWluKEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSopOwog
ICAgICAgICB+U3RydWN0dXJlQ2hhaW4oKTsKICAgICAgICAgT3duQXJyYXlQdHI8V3JpdGVCYXJy
aWVyPFN0cnVjdHVyZT4gPiBtX3ZlY3RvcjsKICAgICB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>