<?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>117611</bug_id>
          
          <creation_ts>2013-06-13 15:19:21 -0700</creation_ts>
          <short_desc>Use borderAndPadding[Before,After]() instead of border[Before,After]() + padding[Before,After]()</short_desc>
          <delta_ts>2013-06-13 17:39:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zoltan Horvath">zoltan</reporter>
          <assigned_to name="Zoltan Horvath">zoltan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>900297</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2013-06-13 15:19:21 -0700</bug_when>
    <thetext>I added a new function called borderAndPaddingAfter(), since we already had borderAndPaddingBefore(). I changed every separate additions to the old/new function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900299</commentid>
    <comment_count>1</comment_count>
      <attachid>204646</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2013-06-13 15:25:56 -0700</bug_when>
    <thetext>Created attachment 204646
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900332</commentid>
    <comment_count>2</comment_count>
      <attachid>204646</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-06-13 17:17:23 -0700</bug_when>
    <thetext>Comment on attachment 204646
proposed patch

r=me. LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900336</commentid>
    <comment_count>3</comment_count>
      <attachid>204646</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-13 17:39:47 -0700</bug_when>
    <thetext>Comment on attachment 204646
proposed patch

Clearing flags on attachment: 204646

Committed r151575: &lt;http://trac.webkit.org/changeset/151575&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>900337</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-13 17:39:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>204646</attachid>
            <date>2013-06-13 15:25:56 -0700</date>
            <delta_ts>2013-06-13 17:39:46 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>refactorborderpadding.patch</filename>
            <type>text/plain</type>
            <size>27895</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmNmE1NmJhLi43MzBiM2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTYg
QEAKIDIwMTMtMDYtMTMgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CiAKKyAg
ICAgICAgVXNlIGJvcmRlckFuZFBhZGRpbmdbQmVmb3JlLEFmdGVyXSgpIGluc3RlYWQgb2YgYm9y
ZGVyW0JlZm9yZSxBZnRlcl0oKSArIHBhZGRpbmdbQmVmb3JlLEFmdGVyXSgpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc2MTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIGFkZGVkIGEgbmV3IGZ1bmN0
aW9uIGNhbGxlZCBib3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKSwgc2luY2Ugd2UgYWxyZWFkeSBoYWQg
Ym9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpLiBJIGNoYW5nZWQKKyAgICAgICAgZXZlcnkgc2VwYXJh
dGUgYWRkaXRpb25zIHRvIHRoZSBvbGQvbmV3IGZ1bmN0aW9uLiBUaGlzIGNoYW5nZSBtYWtlcyB0
aGUgY29kZSBzaG9ydGVyIGFuZCBtb3JlIHN0cmFpZ2h0Zm9yd2FyZC4KKworICAgICAgICBCZWhh
dmlvciBoYXNuJ3QgY2hhbmdlZCwgbm8gbmV3IHRlc3RzIHdlcmUgbmVlZGVkLgorCisgICAgICAg
ICogcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
Rmxvd0JveDo6cGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0
QmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Om1hcmdpbkJlZm9yZUVzdGlt
YXRlRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2Nr
Q2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBhaW50Q29sdW1uUnVs
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbHVtblJlY3RBdCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cmVsYXlvdXRGb3JQYWdpbmF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGp1c3RSZWN0Rm9yQ29sdW1ucyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCbG9jazo6ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1u
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6YWRqdXN0U3RhcnRFZGdlRm9yV3Jp
dGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjphZGp1c3RGb3JDb2x1bW5zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVTaGFwZUFu
ZFNlZ21lbnRzRm9yQ3VycmVudExpbmVJbkZsb3dUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVs
T2JqZWN0Ojpib3JkZXJBbmRQYWRkaW5nU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94TW9kZWxPYmplY3Q6OmJvcmRlckFuZFBhZGRpbmdCZWZvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmJvcmRlckFuZFBhZGRpbmdBZnRlcik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Ym9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxI
ZWlnaHQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uQmxvY2s6OmxheW91dFNwZWNpYWxF
eGNsdWRlZENoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTXVsdGlDb2x1bW5TZXQ6OmhlaWdodEFkanVz
dGVkRm9yU2V0T2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uU2V0
OjpwcmVwYXJlRm9yTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1u
U2V0Ojpjb2x1bW5SZWN0QXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpjb21wdXRlSW50cmluc2lj
UGFkZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OmNlbGxCYXNlbGlu
ZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6Y2FsY1Jvd0xvZ2ljYWxIZWln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpsYXlvdXRSb3dzKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6Zmlyc3RMaW5lQm94QmFzZWxp
bmUpOgorICAgICAgICAqIHJlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJvb3RJbmxpbmVCb3g6OmxpbmVTbmFwQWRqdXN0bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpSb290SW5saW5lQm94OjpzZWxlY3Rpb25Ub3ApOgorICAgICAgICAoV2ViQ29yZTo6Um9v
dElubGluZUJveDo6YXNjZW50QW5kRGVzY2VudEZvckJveCk6CisKKzIwMTMtMDYtMTMgIFpvbHRh
biBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKICAgICAgICAgW0NTUyBTaGFwZXNdW0NT
UyBSZWdpb25zXSBSZXNwZWN0IGJvdHRvbSBwb3NpdGlvbmVkIHNoYXBlcyBhbmQgY29udGVudCBh
ZGp1c3RtZW50IGluc2lkZSBzaGFwZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExNzU5OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lRmxvd0JveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5jcHAKaW5kZXggYWZjNzM0Mi4uOTI1ZDExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcApAQCAtNjI3LDcgKzYyNyw3IEBAIHZvaWQgSW5saW5l
Rmxvd0JveDo6cGxhY2VCb3hlc0luQmxvY2tEaXJlY3Rpb24oTGF5b3V0VW5pdCB0b3AsIExheW91
dFVuaXQgbWF4SGVpCiAgICAgaWYgKGRlc2NlbmRhbnRzSGF2ZVNhbWVMaW5lSGVpZ2h0QW5kQmFz
ZWxpbmUoKSkgewogICAgICAgICBhZGp1c3RtZW50Rm9yQ2hpbGRyZW5XaXRoU2FtZUxpbmVIZWln
aHRBbmRCYXNlbGluZSA9IGxvZ2ljYWxUb3AoKTsKICAgICAgICAgaWYgKHBhcmVudCgpKQotICAg
ICAgICAgICAgYWRqdXN0bWVudEZvckNoaWxkcmVuV2l0aFNhbWVMaW5lSGVpZ2h0QW5kQmFzZWxp
bmUgKz0gKGJveE1vZGVsT2JqZWN0KCktPmJvcmRlckJlZm9yZSgpICsgYm94TW9kZWxPYmplY3Qo
KS0+cGFkZGluZ0JlZm9yZSgpKTsKKyAgICAgICAgICAgIGFkanVzdG1lbnRGb3JDaGlsZHJlbldp
dGhTYW1lTGluZUhlaWdodEFuZEJhc2VsaW5lICs9IChib3hNb2RlbE9iamVjdCgpLT5ib3JkZXJB
bmRQYWRkaW5nQmVmb3JlKCkpOwogICAgIH0KIAogICAgIGZvciAoSW5saW5lQm94KiBjdXJyID0g
Zmlyc3RDaGlsZCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4dE9uTGluZSgpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBhODRlMWI3Li41YWEyOTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE2NTIsNyArMTY1
Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJl
biwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdoCiAgICAgICAgIGxheW91dEJsb2NrQ2hpbGRy
ZW4ocmVsYXlvdXRDaGlsZHJlbiwgbWF4RmxvYXRMb2dpY2FsQm90dG9tKTsKIAogICAgIC8vIEV4
cGFuZCBvdXIgaW50cmluc2ljIGhlaWdodCB0byBlbmNvbXBhc3MgZmxvYXRzLgotICAgIExheW91
dFVuaXQgdG9BZGQgPSBib3JkZXJBZnRlcigpICsgcGFkZGluZ0FmdGVyKCkgKyBzY3JvbGxiYXJM
b2dpY2FsSGVpZ2h0KCk7CisgICAgTGF5b3V0VW5pdCB0b0FkZCA9IGJvcmRlckFuZFBhZGRpbmdB
ZnRlcigpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAgIGlmIChsb3dlc3RGbG9hdExv
Z2ljYWxCb3R0b20oKSA+IChsb2dpY2FsSGVpZ2h0KCkgLSB0b0FkZCkgJiYgZXhwYW5kc1RvRW5j
bG9zZU92ZXJoYW5naW5nRmxvYXRzKCkpCiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG93ZXN0
RmxvYXRMb2dpY2FsQm90dG9tKCkgKyB0b0FkZCk7CiAgICAgCkBAIC0yMzEyLDcgKzIzMTIsNyBA
QCB2b2lkIFJlbmRlckJsb2NrOjptYXJnaW5CZWZvcmVFc3RpbWF0ZUZvckNoaWxkKFJlbmRlckJv
eCogY2hpbGQsIExheW91dFVuaXQmIHBvcwogICAgIGlmIChjaGlsZEJsb2NrLT5jaGlsZHJlbklu
bGluZSgpIHx8IGNoaWxkQmxvY2stPmlzV3JpdGluZ01vZGVSb290KCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIE1hcmdpbkluZm8gY2hpbGRNYXJnaW5JbmZvKGNoaWxkQmxvY2ssIGNoaWxkQmxv
Y2stPmJvcmRlckJlZm9yZSgpICsgY2hpbGRCbG9jay0+cGFkZGluZ0JlZm9yZSgpLCBjaGlsZEJs
b2NrLT5ib3JkZXJBZnRlcigpICsgY2hpbGRCbG9jay0+cGFkZGluZ0FmdGVyKCkpOworICAgIE1h
cmdpbkluZm8gY2hpbGRNYXJnaW5JbmZvKGNoaWxkQmxvY2ssIGNoaWxkQmxvY2stPmJvcmRlckFu
ZFBhZGRpbmdCZWZvcmUoKSwgY2hpbGRCbG9jay0+Ym9yZGVyQW5kUGFkZGluZ0FmdGVyKCkpOwog
ICAgIGlmICghY2hpbGRNYXJnaW5JbmZvLmNhbkNvbGxhcHNlTWFyZ2luQmVmb3JlV2l0aENoaWxk
cmVuKCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjUzNyw4ICsyNTM3LDggQEAgdm9pZCBSZW5k
ZXJCbG9jazo6bGF5b3V0QmxvY2tDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91
dFVuaXQmIG1heEZsb2EKICAgICAgICAgfQogICAgIH0KIAotICAgIExheW91dFVuaXQgYmVmb3Jl
RWRnZSA9IGJvcmRlckJlZm9yZSgpICsgcGFkZGluZ0JlZm9yZSgpOwotICAgIExheW91dFVuaXQg
YWZ0ZXJFZGdlID0gYm9yZGVyQWZ0ZXIoKSArIHBhZGRpbmdBZnRlcigpICsgc2Nyb2xsYmFyTG9n
aWNhbEhlaWdodCgpOworICAgIExheW91dFVuaXQgYmVmb3JlRWRnZSA9IGJvcmRlckFuZFBhZGRp
bmdCZWZvcmUoKTsKKyAgICBMYXlvdXRVbml0IGFmdGVyRWRnZSA9IGJvcmRlckFuZFBhZGRpbmdB
ZnRlcigpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwogCiAgICAgc2V0TG9naWNhbEhlaWdo
dChiZWZvcmVFZGdlKTsKICAgICAKQEAgLTMwMzUsMTAgKzMwMzUsMTAgQEAgdm9pZCBSZW5kZXJC
bG9jazo6cGFpbnRDb2x1bW5SdWxlcyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0
UG9pbnQmIHBhaW4KICAgICAgICAgYm9vbCB0b3BUb0JvdHRvbSA9ICFzdHlsZSgpLT5pc0ZsaXBw
ZWRCbG9ja3NXcml0aW5nTW9kZSgpIF4gY29sSW5mby0+cHJvZ3Jlc3Npb25Jc1JldmVyc2VkKCk7
CiAgICAgICAgIExheW91dFVuaXQgcnVsZUxlZnQgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
CiAgICAgICAgICAgICA/IGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCkKLSAgICAgICAgICAg
IDogY29sR2FwIC8gMiAtIGNvbEdhcCAtIHJ1bGVUaGlja25lc3MgLyAyICsgKCFjb2xJbmZvLT5w
cm9ncmVzc2lvbklzUmV2ZXJzZWQoKSA/IGJvcmRlckJlZm9yZSgpICsgcGFkZGluZ0JlZm9yZSgp
IDogYm9yZGVyQWZ0ZXIoKSArIHBhZGRpbmdBZnRlcigpKTsKKyAgICAgICAgICAgIDogY29sR2Fw
IC8gMiAtIGNvbEdhcCAtIHJ1bGVUaGlja25lc3MgLyAyICsgKCFjb2xJbmZvLT5wcm9ncmVzc2lv
bklzUmV2ZXJzZWQoKSA/IGJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSA6IGJvcmRlckFuZFBhZGRp
bmdBZnRlcigpKTsKICAgICAgICAgTGF5b3V0VW5pdCBydWxlV2lkdGggPSBpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gY29udGVudFdpZHRoKCkgOiBydWxlVGhpY2tuZXNzOwogICAgICAgICBM
YXlvdXRVbml0IHJ1bGVUb3AgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpCi0gICAgICAgICAg
ICA/IGNvbEdhcCAvIDIgLSBjb2xHYXAgLSBydWxlVGhpY2tuZXNzIC8gMiArICghY29sSW5mby0+
cHJvZ3Jlc3Npb25Jc1JldmVyc2VkKCkgPyBib3JkZXJCZWZvcmUoKSArIHBhZGRpbmdCZWZvcmUo
KSA6IGJvcmRlckFmdGVyKCkgKyBwYWRkaW5nQWZ0ZXIoKSkKKyAgICAgICAgICAgID8gY29sR2Fw
IC8gMiAtIGNvbEdhcCAtIHJ1bGVUaGlja25lc3MgLyAyICsgKCFjb2xJbmZvLT5wcm9ncmVzc2lv
bklzUmV2ZXJzZWQoKSA/IGJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSA6IGJvcmRlckFuZFBhZGRp
bmdBZnRlcigpKQogICAgICAgICAgICAgOiBib3JkZXJTdGFydCgpICsgcGFkZGluZ1N0YXJ0KCk7
CiAgICAgICAgIExheW91dFVuaXQgcnVsZUhlaWdodCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkgPyBydWxlVGhpY2tuZXNzIDogY29udGVudEhlaWdodCgpOwogICAgICAgICBMYXlvdXRSZWN0
IHJ1bGVSZWN0KHJ1bGVMZWZ0LCBydWxlVG9wLCBydWxlV2lkdGgsIHJ1bGVIZWlnaHQpOwpAQCAt
NTU4Miw3ICs1NTgyLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCbG9jazo6Y29sdW1uUmVjdEF0KENv
bHVtbkluZm8qIGNvbEluZm8sIHVuc2lnbmVkIGluZGV4KSBjb25zdAogICAgIC8vIENvbXB1dGUg
dGhlIGFwcHJvcHJpYXRlIHJlY3QgYmFzZWQgb2ZmIG91ciBpbmZvcm1hdGlvbi4KICAgICBMYXlv
dXRVbml0IGNvbExvZ2ljYWxXaWR0aCA9IGNvbEluZm8tPmRlc2lyZWRDb2x1bW5XaWR0aCgpOwog
ICAgIExheW91dFVuaXQgY29sTG9naWNhbEhlaWdodCA9IGNvbEluZm8tPmNvbHVtbkhlaWdodCgp
OwotICAgIExheW91dFVuaXQgY29sTG9naWNhbFRvcCA9IGJvcmRlckJlZm9yZSgpICsgcGFkZGlu
Z0JlZm9yZSgpOworICAgIExheW91dFVuaXQgY29sTG9naWNhbFRvcCA9IGJvcmRlckFuZFBhZGRp
bmdCZWZvcmUoKTsKICAgICBMYXlvdXRVbml0IGNvbExvZ2ljYWxMZWZ0ID0gbG9naWNhbExlZnRP
ZmZzZXRGb3JDb250ZW50KCk7CiAgICAgTGF5b3V0VW5pdCBjb2xHYXAgPSBjb2x1bW5HYXAoKTsK
ICAgICBpZiAoY29sSW5mby0+cHJvZ3Jlc3Npb25BeGlzKCkgPT0gQ29sdW1uSW5mbzo6SW5saW5l
QXhpcykgewpAQCAtNTYxMiw3ICs1NjEyLDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6cmVsYXlvdXRG
b3JQYWdpbmF0aW9uKGJvb2wgaGFzU3BlY2lmaWVkUGFnZUxvZ2ljYWxIZWlnaHQsIExheW8KICAg
ICAgICAgYWRkT3ZlcmZsb3dGcm9tSW5saW5lQ2hpbGRyZW4oKTsKICAgICBlbHNlCiAgICAgICAg
IGFkZE92ZXJmbG93RnJvbUJsb2NrQ2hpbGRyZW4oKTsKLSAgICBMYXlvdXRVbml0IGxheW91dE92
ZXJmbG93TG9naWNhbEJvdHRvbSA9IChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gbGF5b3V0
T3ZlcmZsb3dSZWN0KCkubWF4WSgpIDogbGF5b3V0T3ZlcmZsb3dSZWN0KCkubWF4WCgpKSAtIGJv
cmRlckJlZm9yZSgpIC0gcGFkZGluZ0JlZm9yZSgpOworICAgIExheW91dFVuaXQgbGF5b3V0T3Zl
cmZsb3dMb2dpY2FsQm90dG9tID0gKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBsYXlvdXRP
dmVyZmxvd1JlY3QoKS5tYXhZKCkgOiBsYXlvdXRPdmVyZmxvd1JlY3QoKS5tYXhYKCkpIC0gYm9y
ZGVyQW5kUGFkZGluZ0JlZm9yZSgpOwogCiAgICAgLy8gRklYTUU6IFdlIGRvbid0IGJhbGFuY2Ug
cHJvcGVybHkgYXQgYWxsIGluIHRoZSBwcmVzZW5jZSBvZiBmb3JjZWQgcGFnZSBicmVha3MuICBX
ZSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdAogICAgIC8vIHRoZSBkaXN0YW5jZSBiZXR3ZWVuIGZv
cmNlZCBwYWdlIGJyZWFrcyBpcyBzbyB0aGF0IHdlIGNhbiBhdm9pZCBtYWtpbmcgdGhlIG1pbmlt
dW0gY29sdW1uIGhlaWdodCB0b28gdGFsbC4KQEAgLTU2MjYsNyArNTYyNiw3IEBAIGJvb2wgUmVu
ZGVyQmxvY2s6OnJlbGF5b3V0Rm9yUGFnaW5hdGlvbihib29sIGhhc1NwZWNpZmllZFBhZ2VMb2dp
Y2FsSGVpZ2h0LCBMYXlvCiAgICAgICAgICAgICAvLyBtYXhpbXVtIHBhZ2UgYnJlYWsgZGlzdGFu
Y2UuCiAgICAgICAgICAgICBpZiAoIXBhZ2VMb2dpY2FsSGVpZ2h0KSB7CiAgICAgICAgICAgICAg
ICAgTGF5b3V0VW5pdCBkaXN0YW5jZUJldHdlZW5CcmVha3MgPSBtYXg8TGF5b3V0VW5pdD4oY29s
SW5mby0+bWF4aW11bURpc3RhbmNlQmV0d2VlbkZvcmNlZEJyZWFrcygpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZp
ZXcoKS0+bGF5b3V0U3RhdGUoKS0+cGFnZUxvZ2ljYWxPZmZzZXQodGhpcywgYm9yZGVyQmVmb3Jl
KCkgKyBwYWRkaW5nQmVmb3JlKCkgKyBsYXlvdXRPdmVyZmxvd0xvZ2ljYWxCb3R0b20pIC0gY29s
SW5mby0+Zm9yY2VkQnJlYWtPZmZzZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIHZpZXcoKS0+
bGF5b3V0U3RhdGUoKS0+cGFnZUxvZ2ljYWxPZmZzZXQodGhpcywgYm9yZGVyQW5kUGFkZGluZ0Jl
Zm9yZSgpICsgbGF5b3V0T3ZlcmZsb3dMb2dpY2FsQm90dG9tKSAtIGNvbEluZm8tPmZvcmNlZEJy
ZWFrT2Zmc2V0KCkpOwogICAgICAgICAgICAgICAgIGNvbHVtbkhlaWdodCA9IG1heChjb2xJbmZv
LT5taW5pbXVtQ29sdW1uSGVpZ2h0KCksIGRpc3RhbmNlQmV0d2VlbkJyZWFrcyk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0gZWxzZSBpZiAobGF5b3V0T3ZlcmZsb3dMb2dpY2FsQm90dG9tID4g
Ym91bmRlZE11bHRpcGx5KHBhZ2VMb2dpY2FsSGVpZ2h0LCBkZXNpcmVkQ29sdW1uQ291bnQpKSB7
CkBAIC01NjQ2LDcgKzU2NDYsNyBAQCBib29sIFJlbmRlckJsb2NrOjpyZWxheW91dEZvclBhZ2lu
YXRpb24oYm9vbCBoYXNTcGVjaWZpZWRQYWdlTG9naWNhbEhlaWdodCwgTGF5bwogICAgICAgICBj
b2xJbmZvLT5zZXRDb2x1bW5Db3VudEFuZEhlaWdodChjZWlsZigoZmxvYXQpbGF5b3V0T3ZlcmZs
b3dMb2dpY2FsQm90dG9tIC8gcGFnZUxvZ2ljYWxIZWlnaHQpLCBwYWdlTG9naWNhbEhlaWdodCk7
CiAKICAgICBpZiAoY29sdW1uQ291bnQoY29sSW5mbykpIHsKLSAgICAgICAgc2V0TG9naWNhbEhl
aWdodChib3JkZXJCZWZvcmUoKSArIHBhZGRpbmdCZWZvcmUoKSArIGNvbEluZm8tPmNvbHVtbkhl
aWdodCgpICsgYm9yZGVyQWZ0ZXIoKSArIHBhZGRpbmdBZnRlcigpICsgc2Nyb2xsYmFyTG9naWNh
bEhlaWdodCgpKTsKKyAgICAgICAgc2V0TG9naWNhbEhlaWdodChib3JkZXJBbmRQYWRkaW5nQmVm
b3JlKCkgKyBjb2xJbmZvLT5jb2x1bW5IZWlnaHQoKSArIGJvcmRlckFuZFBhZGRpbmdBZnRlcigp
ICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpKTsKICAgICAgICAgbV9vdmVyZmxvdy5jbGVhcigp
OwogICAgIH0gZWxzZQogICAgICAgICBtX292ZXJmbG93ID0gc2F2ZWRPdmVyZmxvdy5yZWxlYXNl
KCk7CkBAIC01NzU4LDcgKzU3NTgsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjphZGp1c3RSZWN0Rm9y
Q29sdW1ucyhMYXlvdXRSZWN0JiByKSBjb25zdAogICAgIExheW91dFJlY3QgcmVzdWx0OwogCiAg
ICAgYm9vbCBpc0hvcml6b250YWwgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpOwotICAgIExh
eW91dFVuaXQgYmVmb3JlQm9yZGVyUGFkZGluZyA9IGJvcmRlckJlZm9yZSgpICsgcGFkZGluZ0Jl
Zm9yZSgpOworICAgIExheW91dFVuaXQgYmVmb3JlQm9yZGVyUGFkZGluZyA9IGJvcmRlckFuZFBh
ZGRpbmdCZWZvcmUoKTsKICAgICBMYXlvdXRVbml0IGNvbEhlaWdodCA9IGNvbEluZm8tPmNvbHVt
bkhlaWdodCgpOwogICAgIGlmICghY29sSGVpZ2h0KQogICAgICAgICByZXR1cm47CkBAIC01ODA3
LDcgKzU4MDcsNyBAQCBMYXlvdXRQb2ludCBSZW5kZXJCbG9jazo6ZmxpcEZvcldyaXRpbmdNb2Rl
SW5jbHVkaW5nQ29sdW1ucyhjb25zdCBMYXlvdXRQb2ludCYgcAogICAgICAgICByZXR1cm4gcG9p
bnQ7CiAgICAgQ29sdW1uSW5mbyogY29sSW5mbyA9IGNvbHVtbkluZm8oKTsKICAgICBMYXlvdXRV
bml0IGNvbHVtbkxvZ2ljYWxIZWlnaHQgPSBjb2xJbmZvLT5jb2x1bW5IZWlnaHQoKTsKLSAgICBM
YXlvdXRVbml0IGV4cGFuZGVkTG9naWNhbEhlaWdodCA9IGJvcmRlckJlZm9yZSgpICsgcGFkZGlu
Z0JlZm9yZSgpICsgY29sdW1uQ291bnQoY29sSW5mbykgKiBjb2x1bW5Mb2dpY2FsSGVpZ2h0ICsg
Ym9yZGVyQWZ0ZXIoKSArIHBhZGRpbmdBZnRlcigpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgp
OworICAgIExheW91dFVuaXQgZXhwYW5kZWRMb2dpY2FsSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGlu
Z0JlZm9yZSgpICsgY29sdW1uQ291bnQoY29sSW5mbykgKiBjb2x1bW5Mb2dpY2FsSGVpZ2h0ICsg
Ym9yZGVyQW5kUGFkZGluZ0FmdGVyKCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAg
aWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJldHVybiBMYXlvdXRQb2lu
dChwb2ludC54KCksIGV4cGFuZGVkTG9naWNhbEhlaWdodCAtIHBvaW50LnkoKSk7CiAgICAgcmV0
dXJuIExheW91dFBvaW50KGV4cGFuZGVkTG9naWNhbEhlaWdodCAtIHBvaW50LngoKSwgcG9pbnQu
eSgpKTsKQEAgLTU4MjEsNyArNTgyMSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFkanVzdFN0YXJ0
RWRnZUZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhMYXlvdXRSZWN0JiByZWN0CiAgICAg
CiAgICAgQ29sdW1uSW5mbyogY29sSW5mbyA9IGNvbHVtbkluZm8oKTsKICAgICBMYXlvdXRVbml0
IGNvbHVtbkxvZ2ljYWxIZWlnaHQgPSBjb2xJbmZvLT5jb2x1bW5IZWlnaHQoKTsKLSAgICBMYXlv
dXRVbml0IGV4cGFuZGVkTG9naWNhbEhlaWdodCA9IGJvcmRlckJlZm9yZSgpICsgcGFkZGluZ0Jl
Zm9yZSgpICsgY29sdW1uQ291bnQoY29sSW5mbykgKiBjb2x1bW5Mb2dpY2FsSGVpZ2h0ICsgYm9y
ZGVyQWZ0ZXIoKSArIHBhZGRpbmdBZnRlcigpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwor
ICAgIExheW91dFVuaXQgZXhwYW5kZWRMb2dpY2FsSGVpZ2h0ID0gYm9yZGVyQW5kUGFkZGluZ0Jl
Zm9yZSgpICsgY29sdW1uQ291bnQoY29sSW5mbykgKiBjb2x1bW5Mb2dpY2FsSGVpZ2h0ICsgYm9y
ZGVyQW5kUGFkZGluZ0FmdGVyKCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgCiAg
ICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJlY3Quc2V0WShleHBh
bmRlZExvZ2ljYWxIZWlnaHQgLSByZWN0Lm1heFkoKSk7CkBAIC01ODQzLDcgKzU4NDMsNyBAQCB2
b2lkIFJlbmRlckJsb2NrOjphZGp1c3RGb3JDb2x1bW5zKExheW91dFNpemUmIG9mZnNldCwgY29u
c3QgTGF5b3V0UG9pbnQmIHBvaW50KQogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGNv
bENvdW50OyArK2kpIHsKICAgICAgICAgLy8gQ29tcHV0ZSB0aGUgZWRnZXMgZm9yIGEgZ2l2ZW4g
Y29sdW1uIGluIHRoZSBibG9jayBwcm9ncmVzc2lvbiBkaXJlY3Rpb24uCi0gICAgICAgIExheW91
dFJlY3Qgc2xpY2VSZWN0ID0gTGF5b3V0UmVjdChsb2dpY2FsTGVmdCwgYm9yZGVyQmVmb3JlKCkg
KyBwYWRkaW5nQmVmb3JlKCkgKyBpICogY29sTG9naWNhbEhlaWdodCwgY29sTG9naWNhbFdpZHRo
LCBjb2xMb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgTGF5b3V0UmVjdCBzbGljZVJlY3QgPSBMYXlv
dXRSZWN0KGxvZ2ljYWxMZWZ0LCBib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyBpICogY29sTG9n
aWNhbEhlaWdodCwgY29sTG9naWNhbFdpZHRoLCBjb2xMb2dpY2FsSGVpZ2h0KTsKICAgICAgICAg
aWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICAgICAgc2xpY2VSZWN0ID0g
c2xpY2VSZWN0LnRyYW5zcG9zZWRSZWN0KCk7CiAgICAgICAgIApAQCAtNTg1NSw3ICs1ODU1LDcg
QEAgdm9pZCBSZW5kZXJCbG9jazo6YWRqdXN0Rm9yQ29sdW1ucyhMYXlvdXRTaXplJiBvZmZzZXQs
IGNvbnN0IExheW91dFBvaW50JiBwb2ludCkKICAgICAgICAgICAgICAgICBpZiAoY29sSW5mby0+
cHJvZ3Jlc3Npb25BeGlzKCkgPT0gQ29sdW1uSW5mbzo6SW5saW5lQXhpcykKICAgICAgICAgICAg
ICAgICAgICAgb2Zmc2V0LmV4cGFuZChjb2x1bW5SZWN0QXQoY29sSW5mbywgaSkueCgpIC0gbG9n
aWNhbExlZnQsIC1sb2dpY2FsT2Zmc2V0KTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgIG9mZnNldC5leHBhbmQoMCwgY29sdW1uUmVjdEF0KGNvbEluZm8sIGkpLnko
KSAtIGxvZ2ljYWxPZmZzZXQgLSBib3JkZXJCZWZvcmUoKSAtIHBhZGRpbmdCZWZvcmUoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIG9mZnNldC5leHBhbmQoMCwgY29sdW1uUmVjdEF0KGNvbEluZm8s
IGkpLnkoKSAtIGxvZ2ljYWxPZmZzZXQgLSBib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkpOwogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKQEAg
LTU4NjMsNyArNTg2Myw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmFkanVzdEZvckNvbHVtbnMoTGF5
b3V0U2l6ZSYgb2Zmc2V0LCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCiAgICAgICAgICAgICAg
ICAgaWYgKGNvbEluZm8tPnByb2dyZXNzaW9uQXhpcygpID09IENvbHVtbkluZm86OklubGluZUF4
aXMpCiAgICAgICAgICAgICAgICAgICAgIG9mZnNldC5leHBhbmQoLWxvZ2ljYWxPZmZzZXQsIGNv
bHVtblJlY3RBdChjb2xJbmZvLCBpKS55KCkgLSBsb2dpY2FsTGVmdCk7CiAgICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBvZmZzZXQuZXhwYW5kKGNvbHVtblJlY3RBdChj
b2xJbmZvLCBpKS54KCkgLSBsb2dpY2FsT2Zmc2V0IC0gYm9yZGVyQmVmb3JlKCkgLSBwYWRkaW5n
QmVmb3JlKCksIDApOworICAgICAgICAgICAgICAgICAgICBvZmZzZXQuZXhwYW5kKGNvbHVtblJl
Y3RBdChjb2xJbmZvLCBpKS54KCkgLSBsb2dpY2FsT2Zmc2V0IC0gYm9yZGVyQW5kUGFkZGluZ0Jl
Zm9yZSgpLCAwKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xp
bmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxh
eW91dC5jcHAKaW5kZXggZDE4NjcxZi4uODgzNzI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTE2ODcsNyArMTY4Nyw3
IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50TGlu
ZUluRmxvd1RocmVhZChTaGFwZUluc2lkZUluCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGluZVRv
cEluRmxvd1RocmVhZCA9IGxvZ2ljYWxIZWlnaHQoKSArIG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZG
aXJzdFBhZ2UoKTsKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxMaW5lQm90dG9tSW5GbG93VGhyZWFk
ID0gbG9naWNhbExpbmVUb3BJbkZsb3dUaHJlYWQgKyBsaW5lSGVpZ2h0OwogICAgIExheW91dFVu
aXQgbG9naWNhbFJlZ2lvblRvcEluRmxvd1RocmVhZCA9IGN1cnJlbnRSZWdpb24tPmxvZ2ljYWxU
b3BGb3JGbG93VGhyZWFkQ29udGVudCgpOwotICAgIExheW91dFVuaXQgbG9naWNhbFJlZ2lvbkJv
dHRvbUluRmxvd1RocmVhZCA9IGxvZ2ljYWxSZWdpb25Ub3BJbkZsb3dUaHJlYWQgKyBjdXJyZW50
UmVnaW9uLT5sb2dpY2FsSGVpZ2h0KCkgLSBjdXJyZW50UmVnaW9uLT5ib3JkZXJBbmRQYWRkaW5n
QmVmb3JlKCkgLSBjdXJyZW50UmVnaW9uLT5ib3JkZXJBZnRlcigpIC0gY3VycmVudFJlZ2lvbi0+
cGFkZGluZ0FmdGVyKCk7CisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmVnaW9uQm90dG9tSW5GbG93
VGhyZWFkID0gbG9naWNhbFJlZ2lvblRvcEluRmxvd1RocmVhZCArIGN1cnJlbnRSZWdpb24tPmxv
Z2ljYWxIZWlnaHQoKSAtIGN1cnJlbnRSZWdpb24tPmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSAt
IGN1cnJlbnRSZWdpb24tPmJvcmRlckFuZFBhZGRpbmdBZnRlcigpOwogCiAgICAgLy8gV2Ugb25s
eSB3YW50IHRvIGRlYWwgcmVnaW9ucyB3aXRoIHNoYXBlcywgc28gd2UgbG9vayB1cCBmb3IgdGhl
IG5leHQgcmVnaW9uIHdoZXRoZXIgaXQgaGFzIGEgc2hhcGUKICAgICBpZiAoIXNoYXBlSW5zaWRl
SW5mbyAmJiAhY3VycmVudFJlZ2lvbi0+aXNMYXN0UmVnaW9uKCkpIHsKQEAgLTE3MTcsNyArMTcx
Nyw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJyZW50
TGluZUluRmxvd1RocmVhZChTaGFwZUluc2lkZUluCiAgICAgICAgIGxvZ2ljYWxMaW5lVG9wSW5G
bG93VGhyZWFkID0gbG9naWNhbEhlaWdodCgpICsgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0
UGFnZSgpOwogICAgICAgICBsb2dpY2FsTGluZUJvdHRvbUluRmxvd1RocmVhZCA9IGxvZ2ljYWxM
aW5lVG9wSW5GbG93VGhyZWFkICsgbGluZUhlaWdodDsKICAgICAgICAgbG9naWNhbFJlZ2lvblRv
cEluRmxvd1RocmVhZCA9IGN1cnJlbnRSZWdpb24tPmxvZ2ljYWxUb3BGb3JGbG93VGhyZWFkQ29u
dGVudCgpOwotICAgICAgICBsb2dpY2FsUmVnaW9uQm90dG9tSW5GbG93VGhyZWFkID0gbG9naWNh
bFJlZ2lvblRvcEluRmxvd1RocmVhZCArIGN1cnJlbnRSZWdpb24tPmxvZ2ljYWxIZWlnaHQoKSAt
IGN1cnJlbnRSZWdpb24tPmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSAtIGN1cnJlbnRSZWdpb24t
PmJvcmRlckFmdGVyKCkgLSBjdXJyZW50UmVnaW9uLT5wYWRkaW5nQWZ0ZXIoKTsKKyAgICAgICAg
bG9naWNhbFJlZ2lvbkJvdHRvbUluRmxvd1RocmVhZCA9IGxvZ2ljYWxSZWdpb25Ub3BJbkZsb3dU
aHJlYWQgKyBjdXJyZW50UmVnaW9uLT5sb2dpY2FsSGVpZ2h0KCkgLSBjdXJyZW50UmVnaW9uLT5i
b3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkgLSBjdXJyZW50UmVnaW9uLT5ib3JkZXJBbmRQYWRkaW5n
QWZ0ZXIoKTsKICAgICB9CiAKICAgICBpZiAoIXNoYXBlSW5zaWRlSW5mbykKQEAgLTE3NDMsNyAr
MTc0Myw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZVNoYXBlQW5kU2VnbWVudHNGb3JDdXJy
ZW50TGluZUluRmxvd1RocmVhZChTaGFwZUluc2lkZUluCiAgICAgLy8gT3ZlcmZsb3cgZnJvbSBs
YXN0IHNoYXBlIG9uIGxhc3QgcmVnaW9uIHNob3VsZCBiZSBwdXNoZWQgYmVsb3cgdGhlIGNvbnRl
bnQgYm94CiAgICAgaWYgKGN1cnJlbnRSZWdpb24tPmlzTGFzdFJlZ2lvbigpICYmICFsaW5lT3Zl
cmZsb3dzRnJvbVNoYXBlSW5zaWRlICYmIChsaW5lVG9wICsgbGluZUhlaWdodCkgPiBzaGFwZUlu
c2lkZUluZm8tPnNoYXBlTG9naWNhbEJvdHRvbSgpKSB7CiAgICAgICAgIGxpbmVPdmVyZmxvd3NG
cm9tU2hhcGVJbnNpZGUgPSB0cnVlOwotICAgICAgICBMYXlvdXRVbml0IG5ld0xvZ2ljYWxIZWln
aHQgPSB0aGlzLT5sb2dpY2FsSGVpZ2h0KCkgKyAoc2hhcGVJbnNpZGVJbmZvLT5zaGFwZUNvbnRh
aW5pbmdCbG9ja0hlaWdodCgpIC0gKGxpbmVUb3AgKyBjdXJyZW50UmVnaW9uLT5ib3JkZXJBZnRl
cigpICsgY3VycmVudFJlZ2lvbi0+cGFkZGluZ0FmdGVyKCkpKTsKKyAgICAgICAgTGF5b3V0VW5p
dCBuZXdMb2dpY2FsSGVpZ2h0ID0gdGhpcy0+bG9naWNhbEhlaWdodCgpICsgKHNoYXBlSW5zaWRl
SW5mby0+c2hhcGVDb250YWluaW5nQmxvY2tIZWlnaHQoKSAtIChsaW5lVG9wICsgY3VycmVudFJl
Z2lvbi0+Ym9yZGVyQW5kUGFkZGluZ0FmdGVyKCkpKTsKICAgICAgICAgc2V0TG9naWNhbEhlaWdo
dChuZXdMb2dpY2FsSGVpZ2h0KTsKICAgICB9CiB9CkBAIC0yMDkxLDcgKzIwOTEsNyBAQCB2b2lk
IFJlbmRlckJsb2NrOjpyZXBhaW50RGlydHlGbG9hdHMoVmVjdG9yPEZsb2F0V2l0aFJlY3Q+JiBm
bG9hdHMpCiAKIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dElubGluZUNoaWxkcmVuKGJvb2wgcmVs
YXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCYgcmVwYWludExvZ2ljYWxUb3AsIExheW91dFVuaXQm
IHJlcGFpbnRMb2dpY2FsQm90dG9tKQogewotICAgIHNldExvZ2ljYWxIZWlnaHQoYm9yZGVyQmVm
b3JlKCkgKyBwYWRkaW5nQmVmb3JlKCkpOworICAgIHNldExvZ2ljYWxIZWlnaHQoYm9yZGVyQW5k
UGFkZGluZ0JlZm9yZSgpKTsKICAgICAKICAgICAvLyBMYXkgb3V0IG91ciBoeXBvdGhldGljYWwg
Z3JpZCBsaW5lIGFzIHRob3VnaCBpdCBvY2N1cnMgYXQgdGhlIHRvcCBvZiB0aGUgYmxvY2suCiAg
ICAgaWYgKHZpZXcoKS0+bGF5b3V0U3RhdGUoKSAmJiB2aWV3KCktPmxheW91dFN0YXRlKCktPmxp
bmVHcmlkKCkgPT0gdGhpcykKQEAgLTIxODIsNyArMjE4Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6
OmxheW91dElubGluZUNoaWxkcmVuKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCYg
cmVwYWluCiAgICAgfQogCiAgICAgLy8gTm93IGFkZCBpbiB0aGUgYm90dG9tIGJvcmRlci9wYWRk
aW5nLgotICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgbGFzdExpbmVBbm5v
dGF0aW9uc0FkanVzdG1lbnQgKyBib3JkZXJBZnRlcigpICsgcGFkZGluZ0FmdGVyKCkgKyBzY3Jv
bGxiYXJMb2dpY2FsSGVpZ2h0KCkpOworICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdo
dCgpICsgbGFzdExpbmVBbm5vdGF0aW9uc0FkanVzdG1lbnQgKyBib3JkZXJBbmRQYWRkaW5nQWZ0
ZXIoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKSk7CiAKICAgICBpZiAoIWZpcnN0TGluZUJv
eCgpICYmIGhhc0xpbmVJZkVtcHR5KCkpCiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNh
bEhlaWdodCgpICsgbGluZUhlaWdodCh0cnVlLCBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8g
SG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUsIFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hl
cykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAppbmRleCBlNjBlYjJiLi4yZGU4ODRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMTIyLDE0ICsxMjIsMTYgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgaW50IGJvcmRlclN0YXJ0KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+Ym9y
ZGVyU3RhcnRXaWR0aCgpOyB9CiAgICAgdmlydHVhbCBpbnQgYm9yZGVyRW5kKCkgY29uc3QgeyBy
ZXR1cm4gc3R5bGUoKS0+Ym9yZGVyRW5kV2lkdGgoKTsgfQogCisgICAgTGF5b3V0VW5pdCBib3Jk
ZXJBbmRQYWRkaW5nU3RhcnQoKSBjb25zdCB7IHJldHVybiBib3JkZXJTdGFydCgpICsgcGFkZGlu
Z1N0YXJ0KCk7IH0KKyAgICBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSBjb25z
dCB7IHJldHVybiBib3JkZXJCZWZvcmUoKSArIHBhZGRpbmdCZWZvcmUoKTsgfQorICAgIExheW91
dFVuaXQgYm9yZGVyQW5kUGFkZGluZ0FmdGVyKCkgY29uc3QgeyByZXR1cm4gYm9yZGVyQWZ0ZXIo
KSArIHBhZGRpbmdBZnRlcigpOyB9CisKICAgICBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmdI
ZWlnaHQoKSBjb25zdCB7IHJldHVybiBib3JkZXJUb3AoKSArIGJvcmRlckJvdHRvbSgpICsgcGFk
ZGluZ1RvcCgpICsgcGFkZGluZ0JvdHRvbSgpOyB9CiAgICAgTGF5b3V0VW5pdCBib3JkZXJBbmRQ
YWRkaW5nV2lkdGgoKSBjb25zdCB7IHJldHVybiBib3JkZXJMZWZ0KCkgKyBib3JkZXJSaWdodCgp
ICsgcGFkZGluZ0xlZnQoKSArIHBhZGRpbmdSaWdodCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBib3Jk
ZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGJvcmRlckJlZm9yZSgp
ICsgYm9yZGVyQWZ0ZXIoKSArIHBhZGRpbmdCZWZvcmUoKSArIHBhZGRpbmdBZnRlcigpOyB9Cisg
ICAgTGF5b3V0VW5pdCBib3JkZXJBbmRQYWRkaW5nTG9naWNhbEhlaWdodCgpIGNvbnN0IHsgcmV0
dXJuIGJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKSArIGJvcmRlckFuZFBhZGRpbmdBZnRlcigpOyB9
CiAgICAgTGF5b3V0VW5pdCBib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRoKCkgY29uc3QgeyBy
ZXR1cm4gYm9yZGVyU3RhcnQoKSArIGJvcmRlckVuZCgpICsgcGFkZGluZ1N0YXJ0KCkgKyBwYWRk
aW5nRW5kKCk7IH0KICAgICBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsTGVmdCgp
IGNvbnN0IHsgcmV0dXJuIHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBib3Jk
ZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpIDogYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCk7IH0K
IAotICAgIExheW91dFVuaXQgYm9yZGVyQW5kUGFkZGluZ1N0YXJ0KCkgY29uc3QgeyByZXR1cm4g
Ym9yZGVyU3RhcnQoKSArIHBhZGRpbmdTdGFydCgpOyB9Ci0gICAgTGF5b3V0VW5pdCBib3JkZXJB
bmRQYWRkaW5nQmVmb3JlKCkgY29uc3QgeyByZXR1cm4gYm9yZGVyQmVmb3JlKCkgKyBwYWRkaW5n
QmVmb3JlKCk7IH0KICAgICBMYXlvdXRVbml0IGJvcmRlckxvZ2ljYWxMZWZ0KCkgY29uc3QgeyBy
ZXR1cm4gc3R5bGUoKS0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGJvcmRlckxlZnQoKSA6
IGJvcmRlclRvcCgpOyB9CiAgICAgTGF5b3V0VW5pdCBib3JkZXJMb2dpY2FsUmlnaHQoKSBjb25z
dCB7IHJldHVybiBzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gYm9yZGVyUmln
aHQoKSA6IGJvcmRlckJvdHRvbSgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcAppbmRleCA0ZDQxOTNhLi4zM2Q1Yzg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9j
ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxv
Y2suY3BwCkBAIC0xNzIsNyArMTcyLDcgQEAgUmVuZGVyT2JqZWN0KiBSZW5kZXJNdWx0aUNvbHVt
bkJsb2NrOjpsYXlvdXRTcGVjaWFsRXhjbHVkZWRDaGlsZChib29sIHJlbGF5b3V0Q2gKICAgICBp
ZiAocmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgbV9mbG93VGhyZWFkLT5zZXRDaGlsZE5lZWRz
TGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAgICAgCi0gICAgc2V0TG9naWNhbFRvcEZvckNo
aWxkKG1fZmxvd1RocmVhZCwgYm9yZGVyQmVmb3JlKCkgKyBwYWRkaW5nQmVmb3JlKCkpOworICAg
IHNldExvZ2ljYWxUb3BGb3JDaGlsZChtX2Zsb3dUaHJlYWQsIGJvcmRlckFuZFBhZGRpbmdCZWZv
cmUoKSk7CiAgICAgbV9mbG93VGhyZWFkLT5sYXlvdXRJZk5lZWRlZCgpOwogICAgIGRldGVybWlu
ZUxvZ2ljYWxMZWZ0UG9zaXRpb25Gb3JDaGlsZChtX2Zsb3dUaHJlYWQpOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKaW5kZXgg
ZDgxOWYxMy4uOTY0MmI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck11bHRpQ29sdW1uU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTXVsdGlDb2x1bW5TZXQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIFJlbmRlck11bHRpQ29sdW1u
U2V0KiBSZW5kZXJNdWx0aUNvbHVtblNldDo6Y3JlYXRlQW5vbnltb3VzKFJlbmRlckZsb3dUaHJl
YWQqIGZsCiBMYXlvdXRVbml0IFJlbmRlck11bHRpQ29sdW1uU2V0OjpoZWlnaHRBZGp1c3RlZEZv
clNldE9mZnNldChMYXlvdXRVbml0IGhlaWdodCkgY29uc3QKIHsKICAgICBSZW5kZXJNdWx0aUNv
bHVtbkJsb2NrKiBtdWx0aWNvbEJsb2NrID0gdG9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrKHBhcmVu
dCgpKTsKLSAgICBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsVG9wID0gbG9naWNhbFRvcCgpIC0g
bXVsdGljb2xCbG9jay0+Ym9yZGVyQmVmb3JlKCkgLSBtdWx0aWNvbEJsb2NrLT5wYWRkaW5nQmVm
b3JlKCk7CisgICAgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbFRvcCA9IGxvZ2ljYWxUb3AoKSAt
IG11bHRpY29sQmxvY2stPmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKTsKIAogICAgIGhlaWdodCAt
PSBjb250ZW50TG9naWNhbFRvcDsKICAgICByZXR1cm4gbWF4KGhlaWdodCwgTGF5b3V0VW5pdCgx
KSk7IC8vIExldCdzIGF2b2lkIHplcm8gaGVpZ2h0LCBhcyB0aGF0IHdvdWxkIHByb2JhYmx5IGNh
dXNlIGFuIGluZmluaXRlIGFtb3VudCBvZiBjb2x1bW5zIHRvIGJlIGNyZWF0ZWQuCkBAIC0xNjMs
NyArMTYzLDcgQEAgdm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6cHJlcGFyZUZvckxheW91dCgp
CiAKICAgICAvLyBTZXQgYm94IGxvZ2ljYWwgdG9wLgogICAgIEFTU0VSVCghcHJldmlvdXNTaWJs
aW5nQm94KCkgfHwgIXByZXZpb3VzU2libGluZ0JveCgpLT5pc1JlbmRlck11bHRpQ29sdW1uU2V0
KCkpOyAvLyBGSVhNRTogbXVsdGlwbGUgc2V0IG5vdCBpbXBsZW1lbnRlZDsgbmVlZCB0byBleGFt
aW5lIHByZXZpb3VzIHNldCB0byBjYWxjdWxhdGUgdGhlIGNvcnJlY3QgbG9naWNhbCB0b3AuCi0g
ICAgc2V0TG9naWNhbFRvcChtdWx0aWNvbEJsb2NrLT5ib3JkZXJCZWZvcmUoKSArIG11bHRpY29s
QmxvY2stPnBhZGRpbmdCZWZvcmUoKSk7CisgICAgc2V0TG9naWNhbFRvcChtdWx0aWNvbEJsb2Nr
LT5ib3JkZXJBbmRQYWRkaW5nQmVmb3JlKCkpOwogCiAgICAgLy8gU2V0IGJveCB3aWR0aC4KICAg
ICB1cGRhdGVMb2dpY2FsV2lkdGgoKTsKQEAgLTIyMSw3ICsyMjEsNyBAQCBMYXlvdXRSZWN0IFJl
bmRlck11bHRpQ29sdW1uU2V0Ojpjb2x1bW5SZWN0QXQodW5zaWduZWQgaW5kZXgpIGNvbnN0CiB7
CiAgICAgTGF5b3V0VW5pdCBjb2xMb2dpY2FsV2lkdGggPSBjb21wdXRlZENvbHVtbldpZHRoKCk7
CiAgICAgTGF5b3V0VW5pdCBjb2xMb2dpY2FsSGVpZ2h0ID0gY29tcHV0ZWRDb2x1bW5IZWlnaHQo
KTsKLSAgICBMYXlvdXRVbml0IGNvbExvZ2ljYWxUb3AgPSBib3JkZXJCZWZvcmUoKSArIHBhZGRp
bmdCZWZvcmUoKTsKKyAgICBMYXlvdXRVbml0IGNvbExvZ2ljYWxUb3AgPSBib3JkZXJBbmRQYWRk
aW5nQmVmb3JlKCk7CiAgICAgTGF5b3V0VW5pdCBjb2xMb2dpY2FsTGVmdCA9IGJvcmRlckFuZFBh
ZGRpbmdMb2dpY2FsTGVmdCgpOwogICAgIExheW91dFVuaXQgY29sR2FwID0gY29sdW1uR2FwKCk7
CiAgICAgaWYgKHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKaW5kZXggYzA3YWFkNy4uMmNjNzRl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKQEAg
LTE5NSw3ICsxOTUsNyBAQCB2b2lkIFJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0ZUludHJpbnNpY1Bh
ZGRpbmcoaW50IHJvd0hlaWdodCkKICAgICBjYXNlIExFTkdUSDoKICAgICBjYXNlIEJBU0VMSU5F
OiB7CiAgICAgICAgIExheW91dFVuaXQgYmFzZWxpbmUgPSBjZWxsQmFzZWxpbmVQb3NpdGlvbigp
OwotICAgICAgICBpZiAoYmFzZWxpbmUgPiBib3JkZXJCZWZvcmUoKSArIHBhZGRpbmdCZWZvcmUo
KSkKKyAgICAgICAgaWYgKGJhc2VsaW5lID4gYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpKQogICAg
ICAgICAgICAgaW50cmluc2ljUGFkZGluZ0JlZm9yZSA9IHNlY3Rpb24oKS0+cm93QmFzZWxpbmUo
cm93SW5kZXgoKSkgLSAoYmFzZWxpbmUgLSBvbGRJbnRyaW5zaWNQYWRkaW5nQmVmb3JlKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpAQCAtMzkxLDcgKzM5MSw3IEBAIExheW91dFVuaXQgUmVuZGVy
VGFibGVDZWxsOjpjZWxsQmFzZWxpbmVQb3NpdGlvbigpIGNvbnN0CiAgICAgTGF5b3V0VW5pdCBm
aXJzdExpbmVCYXNlbGluZSA9IGZpcnN0TGluZUJveEJhc2VsaW5lKCk7CiAgICAgaWYgKGZpcnN0
TGluZUJhc2VsaW5lICE9IC0xKQogICAgICAgICByZXR1cm4gZmlyc3RMaW5lQmFzZWxpbmU7Ci0g
ICAgcmV0dXJuIHBhZGRpbmdCZWZvcmUoKSArIGJvcmRlckJlZm9yZSgpICsgY29udGVudExvZ2lj
YWxIZWlnaHQoKTsKKyAgICByZXR1cm4gYm9yZGVyQW5kUGFkZGluZ0JlZm9yZSgpICsgY29udGVu
dExvZ2ljYWxIZWlnaHQoKTsKIH0KIAogdm9pZCBSZW5kZXJUYWJsZUNlbGw6OnN0eWxlRGlkQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCmluZGV4
IGUwNmQwMmUuLmE1MjlkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZVNlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZVNlY3Rpb24uY3BwCkBAIC0zMzYsNyArMzM2LDcgQEAgaW50IFJlbmRlclRhYmxlU2Vj
dGlvbjo6Y2FsY1Jvd0xvZ2ljYWxIZWlnaHQoKQogICAgICAgICAgICAgICAgIC8vIEZpbmQgb3V0
IHRoZSBiYXNlbGluZS4gVGhlIGJhc2VsaW5lIGlzIHNldCBvbiB0aGUgZmlyc3Qgcm93IGluIGEg
cm93c3Bhbi4KICAgICAgICAgICAgICAgICBpZiAoY2VsbC0+aXNCYXNlbGluZUFsaWduZWQoKSkg
ewogICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24gPSBjZWxs
LT5jZWxsQmFzZWxpbmVQb3NpdGlvbigpOwotICAgICAgICAgICAgICAgICAgICBpZiAoYmFzZWxp
bmVQb3NpdGlvbiA+IGNlbGwtPmJvcmRlckJlZm9yZSgpICsgY2VsbC0+cGFkZGluZ0JlZm9yZSgp
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChiYXNlbGluZVBvc2l0aW9uID4gY2VsbC0+Ym9y
ZGVyQW5kUGFkZGluZ0JlZm9yZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBtX2dyaWRb
Y2VsbFN0YXJ0Um93XS5iYXNlbGluZSA9IG1heChtX2dyaWRbY2VsbFN0YXJ0Um93XS5iYXNlbGlu
ZSwgYmFzZWxpbmVQb3NpdGlvbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgZGVz
Y2VudCBvZiBhIGNlbGwgdGhhdCBzcGFucyBtdWx0aXBsZSByb3dzIGRvZXMgbm90IGFmZmVjdCB0
aGUgaGVpZ2h0IG9mIHRoZSBmaXJzdCByb3cgaXQgc3BhbnMsIHNvIGRvbid0IGxldCBpdAogICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gYmVjb21lIHRoZSBiYXNlbGluZSBkZXNjZW50IGFwcGxp
ZWQgdG8gdGhlIHJlc3Qgb2YgdGhlIHJvdy4gQWxzbyB3ZSBkb24ndCBhY2NvdW50IGZvciB0aGUg
YmFzZWxpbmUgZGVzY2VudCBvZgpAQCAtNjAzLDcgKzYwMyw3IEBAIHZvaWQgUmVuZGVyVGFibGVT
ZWN0aW9uOjpsYXlvdXRSb3dzKCkKICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgYmFzZWxpbmUg
bW92ZWQsIHdlIG1heSBoYXZlIHRvIHVwZGF0ZSB0aGUgZGF0YSBmb3Igb3VyIHJvdy4gRmluZCBv
dXQgdGhlIG5ldyBiYXNlbGluZS4KICAgICAgICAgICAgICAgICBpZiAoY2VsbC0+aXNCYXNlbGlu
ZUFsaWduZWQoKSkgewogICAgICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IGJhc2VsaW5lID0g
Y2VsbC0+Y2VsbEJhc2VsaW5lUG9zaXRpb24oKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGJh
c2VsaW5lID4gY2VsbC0+Ym9yZGVyQmVmb3JlKCkgKyBjZWxsLT5wYWRkaW5nQmVmb3JlKCkpCisg
ICAgICAgICAgICAgICAgICAgIGlmIChiYXNlbGluZSA+IGNlbGwtPmJvcmRlckFuZFBhZGRpbmdC
ZWZvcmUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fZ3JpZFtyXS5iYXNlbGluZSA9IG1h
eChtX2dyaWRbcl0uYmFzZWxpbmUsIGJhc2VsaW5lKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9CkBAIC05MTcsNyArOTE3LDcgQEAgaW50IFJlbmRlclRhYmxlU2VjdGlvbjo6Zmly
c3RMaW5lQm94QmFzZWxpbmUoKSBjb25zdAogICAgICAgICBjb25zdCBSZW5kZXJUYWJsZUNlbGwq
IGNlbGwgPSBjcy5wcmltYXJ5Q2VsbCgpOwogICAgICAgICAvLyBPbmx5IGNlbGxzIHdpdGggY29u
dGVudCBoYXZlIGEgYmFzZWxpbmUKICAgICAgICAgaWYgKGNlbGwgJiYgY2VsbC0+Y29udGVudExv
Z2ljYWxIZWlnaHQoKSkKLSAgICAgICAgICAgIGZpcnN0TGluZUJhc2VsaW5lID0gbWF4PGludD4o
Zmlyc3RMaW5lQmFzZWxpbmUsIGNlbGwtPmxvZ2ljYWxUb3AoKSArIGNlbGwtPnBhZGRpbmdCZWZv
cmUoKSArIGNlbGwtPmJvcmRlckJlZm9yZSgpICsgY2VsbC0+Y29udGVudExvZ2ljYWxIZWlnaHQo
KSk7CisgICAgICAgICAgICBmaXJzdExpbmVCYXNlbGluZSA9IG1heDxpbnQ+KGZpcnN0TGluZUJh
c2VsaW5lLCBjZWxsLT5sb2dpY2FsVG9wKCkgKyBjZWxsLT5ib3JkZXJBbmRQYWRkaW5nQmVmb3Jl
KCkgKyBjZWxsLT5jb250ZW50TG9naWNhbEhlaWdodCgpKTsKICAgICB9CiAKICAgICByZXR1cm4g
Zmlyc3RMaW5lQmFzZWxpbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
Um9vdElubGluZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUm9vdElubGluZUJv
eC5jcHAKaW5kZXggYTgzODU1ZC4uZmM4ZWY5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9Sb290SW5saW5lQm94LmNwcApAQCAtNDMwLDcgKzQzMCw3IEBAIExheW91dFVuaXQgUm9vdElu
bGluZUJveDo6bGluZVNuYXBBZGp1c3RtZW50KExheW91dFVuaXQgZGVsdGEpIGNvbnN0CiAgICAg
aWYgKGxheW91dFN0YXRlLT5pc1BhZ2luYXRlZCgpICYmIGxheW91dFN0YXRlLT5wYWdlTG9naWNh
bEhlaWdodCgpKSB7CiAgICAgICAgIHBhZ2VMb2dpY2FsVG9wID0gYmxvY2soKS0+cGFnZUxvZ2lj
YWxUb3BGb3JPZmZzZXQobGluZVRvcFdpdGhMZWFkaW5nKCkgKyBkZWx0YSk7CiAgICAgICAgIGlm
IChwYWdlTG9naWNhbFRvcCA+IGZpcnN0TGluZVRvcFdpdGhMZWFkaW5nKQotICAgICAgICAgICAg
Zmlyc3RUZXh0VG9wID0gcGFnZUxvZ2ljYWxUb3AgKyBsaW5lR3JpZEJveC0+bG9naWNhbFRvcCgp
IC0gbGluZUdyaWQtPmJvcmRlckJlZm9yZSgpIC0gbGluZUdyaWQtPnBhZGRpbmdCZWZvcmUoKSAr
IGxpbmVHcmlkUGFnaW5hdGlvbk9yaWdpbjsKKyAgICAgICAgICAgIGZpcnN0VGV4dFRvcCA9IHBh
Z2VMb2dpY2FsVG9wICsgbGluZUdyaWRCb3gtPmxvZ2ljYWxUb3AoKSAtIGxpbmVHcmlkLT5ib3Jk
ZXJBbmRQYWRkaW5nQmVmb3JlKCkgKyBsaW5lR3JpZFBhZ2luYXRpb25PcmlnaW47CiAgICAgfQog
CiAgICAgaWYgKGJsb2NrKCktPnN0eWxlKCktPmxpbmVTbmFwKCkgPT0gTGluZVNuYXBDb250YWlu
KSB7CkBAIC01ODEsNyArNTgxLDcgQEAgTGF5b3V0VW5pdCBSb290SW5saW5lQm94OjpzZWxlY3Rp
b25Ub3AoKSBjb25zdAogICAgIGlmIChyZW5kZXJlcigpLT5zdHlsZSgpLT5pc0ZsaXBwZWRMaW5l
c1dyaXRpbmdNb2RlKCkpCiAgICAgICAgIHJldHVybiBzZWxlY3Rpb25Ub3A7CiAKLSAgICBMYXlv
dXRVbml0IHByZXZCb3R0b20gPSBwcmV2Um9vdEJveCgpID8gcHJldlJvb3RCb3goKS0+c2VsZWN0
aW9uQm90dG9tKCkgOiBibG9jaygpLT5ib3JkZXJCZWZvcmUoKSArIGJsb2NrKCktPnBhZGRpbmdC
ZWZvcmUoKTsKKyAgICBMYXlvdXRVbml0IHByZXZCb3R0b20gPSBwcmV2Um9vdEJveCgpID8gcHJl
dlJvb3RCb3goKS0+c2VsZWN0aW9uQm90dG9tKCkgOiBibG9jaygpLT5ib3JkZXJBbmRQYWRkaW5n
QmVmb3JlKCk7CiAgICAgaWYgKHByZXZCb3R0b20gPCBzZWxlY3Rpb25Ub3AgJiYgYmxvY2soKS0+
Y29udGFpbnNGbG9hdHMoKSkgewogICAgICAgICAvLyBUaGlzIGxpbmUgaGFzIGFjdHVhbGx5IGJl
ZW4gbW92ZWQgZnVydGhlciBkb3duLCBwcm9iYWJseSBmcm9tIGEgbGFyZ2UgbGluZS1oZWlnaHQs
IGJ1dCBwb3NzaWJseSBiZWNhdXNlIHRoZQogICAgICAgICAvLyBsaW5lIHdhcyBmb3JjZWQgdG8g
Y2xlYXIgZmxvYXRzLiAgSWYgc28sIGxldCdzIGNoZWNrIHRoZSBvZmZzZXRzLCBhbmQgb25seSBi
ZSB3aWxsaW5nIHRvIHVzZSB0aGUgcHJldmlvdXMKQEAgLTg2OCw4ICs4NjgsOCBAQCB2b2lkIFJv
b3RJbmxpbmVCb3g6OmFzY2VudEFuZERlc2NlbnRGb3JCb3goSW5saW5lQm94KiBib3gsIEdseXBo
T3ZlcmZsb3dBbmRGYWxsYgogICAgICAgICBMYXlvdXRVbml0IGFzY2VudFdpdGhNYXJnaW4gPSBi
b3gtPnJlbmRlcmVyKCktPnN0eWxlKGlzRmlyc3RMaW5lU3R5bGUoKSktPmZvbnRNZXRyaWNzKCku
YXNjZW50KGJhc2VsaW5lVHlwZSgpKTsKICAgICAgICAgTGF5b3V0VW5pdCBkZXNjZW50V2l0aE1h
cmdpbiA9IGJveC0+cmVuZGVyZXIoKS0+c3R5bGUoaXNGaXJzdExpbmVTdHlsZSgpKS0+Zm9udE1l
dHJpY3MoKS5kZXNjZW50KGJhc2VsaW5lVHlwZSgpKTsKICAgICAgICAgaWYgKGJveC0+cGFyZW50
KCkgJiYgIWJveC0+cmVuZGVyZXIoKS0+aXNUZXh0KCkpIHsKLSAgICAgICAgICAgIGFzY2VudFdp
dGhNYXJnaW4gKz0gYm94LT5ib3hNb2RlbE9iamVjdCgpLT5ib3JkZXJCZWZvcmUoKSArIGJveC0+
Ym94TW9kZWxPYmplY3QoKS0+cGFkZGluZ0JlZm9yZSgpICsgYm94LT5ib3hNb2RlbE9iamVjdCgp
LT5tYXJnaW5CZWZvcmUoKTsKLSAgICAgICAgICAgIGRlc2NlbnRXaXRoTWFyZ2luICs9IGJveC0+
Ym94TW9kZWxPYmplY3QoKS0+Ym9yZGVyQWZ0ZXIoKSArIGJveC0+Ym94TW9kZWxPYmplY3QoKS0+
cGFkZGluZ0FmdGVyKCkgKyBib3gtPmJveE1vZGVsT2JqZWN0KCktPm1hcmdpbkFmdGVyKCk7Cisg
ICAgICAgICAgICBhc2NlbnRXaXRoTWFyZ2luICs9IGJveC0+Ym94TW9kZWxPYmplY3QoKS0+Ym9y
ZGVyQW5kUGFkZGluZ0JlZm9yZSgpICsgYm94LT5ib3hNb2RlbE9iamVjdCgpLT5tYXJnaW5CZWZv
cmUoKTsKKyAgICAgICAgICAgIGRlc2NlbnRXaXRoTWFyZ2luICs9IGJveC0+Ym94TW9kZWxPYmpl
Y3QoKS0+Ym9yZGVyQW5kUGFkZGluZ0FmdGVyKCkgKyBib3gtPmJveE1vZGVsT2JqZWN0KCktPm1h
cmdpbkFmdGVyKCk7CiAgICAgICAgIH0KICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChhc2Nl
bnQsIGRlc2NlbnQsIGFzY2VudFdpdGhNYXJnaW4sIGRlc2NlbnRXaXRoTWFyZ2luLCBhc2NlbnRE
ZXNjZW50U2V0KTsKICAgICAgICAgCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>