<?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>121400</bug_id>
          
          <creation_ts>2013-09-15 12:43:50 -0700</creation_ts>
          <short_desc>CTTE: RenderObject&apos;s createAnonymous() and setDocumentForAnonymous() should take Document references</short_desc>
          <delta_ts>2013-09-15 12:55:06 -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>New Bugs</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbarton</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mrobinson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>929487</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-15 12:43:50 -0700</bug_when>
    <thetext>CTTE: RenderObject&apos;s createAnonymous() and setDocumentForAnonymous() should take Document references</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929488</commentid>
    <comment_count>1</comment_count>
      <attachid>211726</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-15 12:46:38 -0700</bug_when>
    <thetext>Created attachment 211726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929491</commentid>
    <comment_count>2</comment_count>
      <attachid>211726</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-15 12:49:21 -0700</bug_when>
    <thetext>Comment on attachment 211726
Patch

:D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929492</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-09-15 12:55:06 -0700</bug_when>
    <thetext>Committed r155825: &lt;http://trac.webkit.org/changeset/155825&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211726</attachid>
            <date>2013-09-15 12:46:38 -0700</date>
            <delta_ts>2013-09-15 12:49:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121400-20130915124637.patch</filename>
            <type>text/plain</type>
            <size>41313</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NTgyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBACisyMDEzLTA5LTE1ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1RURTogUmVuZGVyT2JqZWN0J3MgY3Jl
YXRlQW5vbnltb3VzKCkgYW5kIHNldERvY3VtZW50Rm9yQW5vbnltb3VzKCkgc2hvdWxkIHRha2Ug
RG9jdW1lbnQgcmVmZXJlbmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIxNDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIERvY3VtZW50IHVzZWQgZm9yIGFub255bW91cyByZW5kZXJlcnMgaXMg
bmV2ZXIgbnVsbC4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxl
ci5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyRnVsbFNjcmVlbi5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5j
cHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5j
cHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uU2V0LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1
bW5TZXQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZXBs
aWNhLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUnVi
eUJhc2UuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyU2Nyb2xsYmFyLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFy
dC5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhclBhcnQuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUYWJsZVJvdy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNl
Y3Rpb24uY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcDoK
KyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFJvdy5jcHA6CisgICAgICAg
ICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmNwcDoKKwogMjAxMy0wOS0x
NSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIENUVEU6IENvbnRlbnRE
YXRhOjpjcmVhdGVSZW5kZXJlcigpIHNob3VsZCB0YWtlIHJlZmVyZW5jZXMKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMTU1ODE3KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwMCw3ICsyMDAwLDcgQEAgdm9pZCBE
b2N1bWVudDo6Y3JlYXRlUmVuZGVyVHJlZSgpCiAgICAgaWYgKCFtX3JlbmRlckFyZW5hKQogICAg
ICAgICBtX3JlbmRlckFyZW5hID0gY3JlYXRlT3duZWQ8UmVuZGVyQXJlbmE+KCk7CiAgICAgCi0g
ICAgc2V0UmVuZGVyVmlldyhuZXcgKG1fcmVuZGVyQXJlbmEuZ2V0KCkpIFJlbmRlclZpZXcodGhp
cykpOworICAgIHNldFJlbmRlclZpZXcobmV3IChtX3JlbmRlckFyZW5hLmdldCgpKSBSZW5kZXJW
aWV3KCp0aGlzKSk7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIHJlbmRl
clZpZXcoKS0+c2V0SXNJbldpbmRvdyh0cnVlKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMTU1ODE3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjg3LDcgKzMyODcsNyBAQCB2b2lkIEZy
YW1lVmlldzo6dXBkYXRlU2Nyb2xsQ29ybmVyKCkKIAogICAgIGlmIChjb3JuZXJTdHlsZSkgewog
ICAgICAgICBpZiAoIW1fc2Nyb2xsQ29ybmVyKQotICAgICAgICAgICAgbV9zY3JvbGxDb3JuZXIg
PSBSZW5kZXJTY3JvbGxiYXJQYXJ0OjpjcmVhdGVBbm9ueW1vdXMoJnJlbmRlcmVyLT5kb2N1bWVu
dCgpKTsKKyAgICAgICAgICAgIG1fc2Nyb2xsQ29ybmVyID0gUmVuZGVyU2Nyb2xsYmFyUGFydDo6
Y3JlYXRlQW5vbnltb3VzKHJlbmRlcmVyLT5kb2N1bWVudCgpKTsKICAgICAgICAgbV9zY3JvbGxD
b3JuZXItPnNldFN0eWxlKGNvcm5lclN0eWxlLnJlbGVhc2UoKSk7CiAgICAgICAgIGludmFsaWRh
dGVTY3JvbGxDb3JuZXIoY29ybmVyUmVjdCk7CiAgICAgfSBlbHNlIGlmIChtX3Njcm9sbENvcm5l
cikgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENv
bnRyb2xsZXIuY3BwCShyZXZpc2lvbiAxNTU4MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3
IEBAIFJlbmRlck5hbWVkRmxvd1RocmVhZCYgRmxvd1RocmVhZENvbnRyb2wKICAgICAvLyBTYW5p
dHkgY2hlY2sgZm9yIHRoZSBhYnNlbmNlIG9mIGEgbmFtZWQgZmxvdyBpbiB0aGUgIkNSRUFURUQi
IHN0YXRlIHdpdGggdGhlIHNhbWUgbmFtZS4KICAgICBBU1NFUlQoIW5hbWVkRmxvd3MtPmZsb3dC
eU5hbWUobmFtZSkpOwogCi0gICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBmbG93UmVuZGVyZXIg
PSBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OmNyZWF0ZUFub255bW91cygmbV92aWV3LT5kb2N1bWVu
dCgpLCBuYW1lZEZsb3dzLT5lbnN1cmVGbG93V2l0aE5hbWUobmFtZSkpOworICAgIFJlbmRlck5h
bWVkRmxvd1RocmVhZCogZmxvd1JlbmRlcmVyID0gUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpjcmVh
dGVBbm9ueW1vdXMobV92aWV3LT5kb2N1bWVudCgpLCBuYW1lZEZsb3dzLT5lbnN1cmVGbG93V2l0
aE5hbWUobmFtZSkpOwogICAgIGZsb3dSZW5kZXJlci0+c2V0U3R5bGUoUmVuZGVyRmxvd1RocmVh
ZDo6Y3JlYXRlRmxvd1RocmVhZFN0eWxlKG1fdmlldy0+c3R5bGUoKSkpOwogICAgIG1fcmVuZGVy
TmFtZWRGbG93VGhyZWFkTGlzdC0+YWRkKGZsb3dSZW5kZXJlcik7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMTU1ODE3KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTk0LDkgKzE5NCw5IEBAIFJlbmRlckJsb2NrOjp+UmVuZGVyQmxvY2soKQogICAgICAgICByZW1v
dmVCbG9ja0Zyb21EZXNjZW5kYW50QW5kQ29udGFpbmVyTWFwcyh0aGlzLCBnUG9zaXRpb25lZERl
c2NlbmRhbnRzTWFwLCBnUG9zaXRpb25lZENvbnRhaW5lck1hcCk7CiB9CiAKLVJlbmRlckJsb2Nr
KiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKERvY3VtZW50KiBkb2N1bWVudCkKK1JlbmRl
ckJsb2NrKiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKERvY3VtZW50JiBkb2N1bWVudCkK
IHsKLSAgICBSZW5kZXJCbG9jayogcmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVu
YSgpKSBSZW5kZXJCbG9ja0Zsb3coMCk7CisgICAgUmVuZGVyQmxvY2sqIHJlbmRlcmVyID0gbmV3
IChkb2N1bWVudC5yZW5kZXJBcmVuYSgpKSBSZW5kZXJCbG9ja0Zsb3coMCk7CiAgICAgcmVuZGVy
ZXItPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKICAgICByZXR1cm4gcmVuZGVy
ZXI7CiB9CkBAIC01ODQyLDkgKzU4NDIsOSBAQCB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVGaXJz
dExldHRlclN0eWxlCiAgICAgICAgIC8vIFRoZSBmaXJzdC1sZXR0ZXIgcmVuZGVyZXIgbmVlZHMg
dG8gYmUgcmVwbGFjZWQuIENyZWF0ZSBhIG5ldyByZW5kZXJlciBvZiB0aGUgcmlnaHQgdHlwZS4K
ICAgICAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIG5ld0ZpcnN0TGV0dGVyOwogICAgICAgICBp
ZiAocHNldWRvU3R5bGUtPmRpc3BsYXkoKSA9PSBJTkxJTkUpCi0gICAgICAgICAgICBuZXdGaXJz
dExldHRlciA9IFJlbmRlcklubGluZTo6Y3JlYXRlQW5vbnltb3VzKCZkb2N1bWVudCgpKTsKKyAg
ICAgICAgICAgIG5ld0ZpcnN0TGV0dGVyID0gUmVuZGVySW5saW5lOjpjcmVhdGVBbm9ueW1vdXMo
ZG9jdW1lbnQoKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG5ld0ZpcnN0TGV0dGVyID0g
UmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91cygmZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBu
ZXdGaXJzdExldHRlciA9IFJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXMoZG9jdW1lbnQoKSk7
CiAgICAgICAgIG5ld0ZpcnN0TGV0dGVyLT5zZXRTdHlsZShwc2V1ZG9TdHlsZSk7CiAKICAgICAg
ICAgLy8gTW92ZSB0aGUgZmlyc3QgbGV0dGVyIGludG8gdGhlIG5ldyByZW5kZXJlci4KQEAgLTU4
ODQsOSArNTg4NCw5IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNyZWF0ZUZpcnN0TGV0dGVyUmVuZGUK
ICAgICBSZW5kZXJTdHlsZSogcHNldWRvU3R5bGUgPSBzdHlsZUZvckZpcnN0TGV0dGVyKGZpcnN0
TGV0dGVyQmxvY2ssIGZpcnN0TGV0dGVyQ29udGFpbmVyKTsKICAgICBSZW5kZXJPYmplY3QqIGZp
cnN0TGV0dGVyID0gMDsKICAgICBpZiAocHNldWRvU3R5bGUtPmRpc3BsYXkoKSA9PSBJTkxJTkUp
Ci0gICAgICAgIGZpcnN0TGV0dGVyID0gUmVuZGVySW5saW5lOjpjcmVhdGVBbm9ueW1vdXMoJmRv
Y3VtZW50KCkpOworICAgICAgICBmaXJzdExldHRlciA9IFJlbmRlcklubGluZTo6Y3JlYXRlQW5v
bnltb3VzKGRvY3VtZW50KCkpOwogICAgIGVsc2UKLSAgICAgICAgZmlyc3RMZXR0ZXIgPSBSZW5k
ZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKCZkb2N1bWVudCgpKTsKKyAgICAgICAgZmlyc3RMZXR0
ZXIgPSBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKGRvY3VtZW50KCkpOwogICAgIGZpcnN0
TGV0dGVyLT5zZXRTdHlsZShwc2V1ZG9TdHlsZSk7CiAgICAgZmlyc3RMZXR0ZXJDb250YWluZXIt
PmFkZENoaWxkKGZpcnN0TGV0dGVyLCBjdXJyZW50Q2hpbGQpOwogCkBAIC02OTA3LDEwICs2OTA3
LDEwIEBAIFJlbmRlckJsb2NrKiBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3UKICAgICBFRGlz
cGxheSBuZXdEaXNwbGF5OwogICAgIFJlbmRlckJsb2NrKiBuZXdCb3ggPSAwOwogICAgIGlmIChk
aXNwbGF5ID09IEZMRVggfHwgZGlzcGxheSA9PSBJTkxJTkVfRkxFWCkgewotICAgICAgICBuZXdC
b3ggPSBSZW5kZXJGbGV4aWJsZUJveDo6Y3JlYXRlQW5vbnltb3VzKCZwYXJlbnQtPmRvY3VtZW50
KCkpOworICAgICAgICBuZXdCb3ggPSBSZW5kZXJGbGV4aWJsZUJveDo6Y3JlYXRlQW5vbnltb3Vz
KHBhcmVudC0+ZG9jdW1lbnQoKSk7CiAgICAgICAgIG5ld0Rpc3BsYXkgPSBGTEVYOwogICAgIH0g
ZWxzZSB7Ci0gICAgICAgIG5ld0JveCA9IFJlbmRlckJsb2NrOjpjcmVhdGVBbm9ueW1vdXMoJnBh
cmVudC0+ZG9jdW1lbnQoKSk7CisgICAgICAgIG5ld0JveCA9IFJlbmRlckJsb2NrOjpjcmVhdGVB
bm9ueW1vdXMocGFyZW50LT5kb2N1bWVudCgpKTsKICAgICAgICAgbmV3RGlzcGxheSA9IEJMT0NL
OwogICAgIH0KIApAQCAtNjkyNCw3ICs2OTI0LDcgQEAgUmVuZGVyQmxvY2sqIFJlbmRlckJsb2Nr
OjpjcmVhdGVBbm9ueW1vdQogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5k
ZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheShwYXJlbnQtPnN0eWxlKCks
IEJMT0NLKTsKICAgICBuZXdTdHlsZS0+aW5oZXJpdENvbHVtblByb3BlcnRpZXNGcm9tKHBhcmVu
dC0+c3R5bGUoKSk7CiAKLSAgICBSZW5kZXJCbG9jayogbmV3Qm94ID0gUmVuZGVyQmxvY2s6OmNy
ZWF0ZUFub255bW91cygmcGFyZW50LT5kb2N1bWVudCgpKTsKKyAgICBSZW5kZXJCbG9jayogbmV3
Qm94ID0gUmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91cyhwYXJlbnQtPmRvY3VtZW50KCkpOwog
ICAgIG5ld0JveC0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKICAgICByZXR1cm4gbmV3
Qm94OwogfQpAQCAtNjkzNCw3ICs2OTM0LDcgQEAgUmVuZGVyQmxvY2sqIFJlbmRlckJsb2NrOjpj
cmVhdGVBbm9ueW1vdQogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3U3R5bGUgPSBSZW5kZXJT
dHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheShwYXJlbnQtPnN0eWxlKCksIEJM
T0NLKTsKICAgICBuZXdTdHlsZS0+c2V0Q29sdW1uU3BhbihDb2x1bW5TcGFuQWxsKTsKIAotICAg
IFJlbmRlckJsb2NrKiBuZXdCb3ggPSBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3VzKCZwYXJl
bnQtPmRvY3VtZW50KCkpOworICAgIFJlbmRlckJsb2NrKiBuZXdCb3ggPSBSZW5kZXJCbG9jazo6
Y3JlYXRlQW5vbnltb3VzKHBhcmVudC0+ZG9jdW1lbnQoKSk7CiAgICAgbmV3Qm94LT5zZXRTdHls
ZShuZXdTdHlsZS5yZWxlYXNlKCkpOwogICAgIHJldHVybiBuZXdCb3g7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAkocmV2aXNpb24gMTU1ODE3KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEw
MSw3ICsxMDEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+UmVuZGVyQmxvY2soKTsKIAog
cHVibGljOgotICAgIHN0YXRpYyBSZW5kZXJCbG9jayogY3JlYXRlQW5vbnltb3VzKERvY3VtZW50
Kik7CisgICAgc3RhdGljIFJlbmRlckJsb2NrKiBjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQmKTsK
IAogICAgIFJlbmRlck9iamVjdCogZmlyc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRy
ZW4uZmlyc3RDaGlsZCgpOyB9CiAgICAgUmVuZGVyT2JqZWN0KiBsYXN0Q2hpbGQoKSBjb25zdCB7
IHJldHVybiBtX2NoaWxkcmVuLmxhc3RDaGlsZCgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAJKHJldmlzaW9uIDE1NTgxNykKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzNSw5ICsxMzUsOSBAQCBSZW5kZXJGbGV4aWJsZUJveDo6flJlbmRlckZsZXhp
YmxlQm94KCkKIHsKIH0KIAotUmVuZGVyRmxleGlibGVCb3gqIFJlbmRlckZsZXhpYmxlQm94Ojpj
cmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqIGRvY3VtZW50KQorUmVuZGVyRmxleGlibGVCb3gqIFJl
bmRlckZsZXhpYmxlQm94OjpjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQmIGRvY3VtZW50KQogewot
ICAgIFJlbmRlckZsZXhpYmxlQm94KiByZW5kZXJlciA9IG5ldyAoZG9jdW1lbnQtPnJlbmRlckFy
ZW5hKCkpIFJlbmRlckZsZXhpYmxlQm94KDApOworICAgIFJlbmRlckZsZXhpYmxlQm94KiByZW5k
ZXJlciA9IG5ldyAoZG9jdW1lbnQucmVuZGVyQXJlbmEoKSkgUmVuZGVyRmxleGlibGVCb3goMCk7
CiAgICAgcmVuZGVyZXItPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKICAgICBy
ZXR1cm4gcmVuZGVyZXI7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmxleGlibGVCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guaAkocmV2aXNpb24gMTU1ODE3KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcg
QEAgcHVibGljOgogICAgIFJlbmRlckZsZXhpYmxlQm94KEVsZW1lbnQqKTsKICAgICB2aXJ0dWFs
IH5SZW5kZXJGbGV4aWJsZUJveCgpOwogCi0gICAgc3RhdGljIFJlbmRlckZsZXhpYmxlQm94KiBj
cmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUmVuZGVyRmxleGlibGVCb3gq
IGNyZWF0ZUFub255bW91cyhEb2N1bWVudCYpOwogCiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiBy
ZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREU7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAJKHJldmlzaW9uIDE1NTgxNykKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgICAgIDogUmVuZGVyQmxvY2tGbG93KDApCiAg
ICAgICAgICwgbV9vd25lcihvd25lcikgCiAgICAgewotICAgICAgICBzZXREb2N1bWVudEZvckFu
b255bW91cygmb3duZXItPmRvY3VtZW50KCkpOworICAgICAgICBzZXREb2N1bWVudEZvckFub255
bW91cyhvd25lci0+ZG9jdW1lbnQoKSk7CiAgICAgfQogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNSZW5kZXJGdWxsU2NyZWVuUGxhY2Vob2xkZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CkBAIC02NCw5ICs2NCw5IEBAIFJlbmRlckZ1bGxTY3JlZW46OlJlbmRlckZ1bGxTY3JlZW4oKQog
ICAgIHNldFJlcGxhY2VkKGZhbHNlKTsgCiB9CiAKLVJlbmRlckZ1bGxTY3JlZW4qIFJlbmRlckZ1
bGxTY3JlZW46OmNyZWF0ZUFub255bW91cyhEb2N1bWVudCogZG9jdW1lbnQpCitSZW5kZXJGdWxs
U2NyZWVuKiBSZW5kZXJGdWxsU2NyZWVuOjpjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewotICAgIFJlbmRlckZ1bGxTY3JlZW4qIHJlbmRlcmVyID0gbmV3IChkb2N1bWVudC0+
cmVuZGVyQXJlbmEoKSkgUmVuZGVyRnVsbFNjcmVlbigpOworICAgIFJlbmRlckZ1bGxTY3JlZW4q
IHJlbmRlcmVyID0gbmV3IChkb2N1bWVudC5yZW5kZXJBcmVuYSgpKSBSZW5kZXJGdWxsU2NyZWVu
KCk7CiAgICAgcmVuZGVyZXItPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKICAg
ICByZXR1cm4gcmVuZGVyZXI7CiB9CkBAIC0xMTYsNyArMTE2LDcgQEAgc3RhdGljIFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IGNyZWF0ZUZ1bAogCiBSZW5kZXJPYmplY3QqIFJlbmRlckZ1bGxTY3Jl
ZW46OndyYXBSZW5kZXJlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyT2JqZWN0KiBwYXJl
bnQsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsc2Ny
ZWVuUmVuZGVyZXIgPSBSZW5kZXJGdWxsU2NyZWVuOjpjcmVhdGVBbm9ueW1vdXMoZG9jdW1lbnQp
OworICAgIFJlbmRlckZ1bGxTY3JlZW4qIGZ1bGxzY3JlZW5SZW5kZXJlciA9IFJlbmRlckZ1bGxT
Y3JlZW46OmNyZWF0ZUFub255bW91cygqZG9jdW1lbnQpOwogICAgIGZ1bGxzY3JlZW5SZW5kZXJl
ci0+c2V0U3R5bGUoY3JlYXRlRnVsbFNjcmVlblN0eWxlKCkpOwogICAgIGlmIChwYXJlbnQgJiYg
IXBhcmVudC0+aXNDaGlsZEFsbG93ZWQoZnVsbHNjcmVlblJlbmRlcmVyLCBmdWxsc2NyZWVuUmVu
ZGVyZXItPnN0eWxlKCkpKSB7CiAgICAgICAgIGZ1bGxzY3JlZW5SZW5kZXJlci0+ZGVzdHJveSgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCShy
ZXZpc2lvbiAxNTU4MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNj
cmVlbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgUmVuZGVyRnVsbFNjcmVlbiBGSU5BTCA6IHB1YmxpYyBSZW5kZXJGbGV4aWJs
ZUJveCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlbmRlckZ1bGxTY3JlZW4qIGNyZWF0ZUFub255
bW91cyhEb2N1bWVudCopOworICAgIHN0YXRpYyBSZW5kZXJGdWxsU2NyZWVuKiBjcmVhdGVBbm9u
eW1vdXMoRG9jdW1lbnQmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckZ1bGxTY3JlZW4o
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJO
YW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlckZ1bGxTY3JlZW4iOyB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAJKHJldmlzaW9uIDE1NTgyMykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTY1LDcgKzY1LDcgQEAgUmVuZGVySW1hZ2U6OlJlbmRlckltYWdlKEVsZW1lbnQqIGVsZW1lbgog
UmVuZGVySW1hZ2UqIFJlbmRlckltYWdlOjpjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogewogICAgIFJlbmRlckltYWdlKiBpbWFnZSA9IG5ldyAoZG9jdW1lbnQucmVuZGVyQXJl
bmEoKSkgUmVuZGVySW1hZ2UoMCk7Ci0gICAgaW1hZ2UtPnNldERvY3VtZW50Rm9yQW5vbnltb3Vz
KCZkb2N1bWVudCk7CisgICAgaW1hZ2UtPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50
KTsKICAgICByZXR1cm4gaW1hZ2U7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwCShyZXZpc2lvbiAxNTU4MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsOSArNTYsOSBA
QCBSZW5kZXJJbmxpbmU6OlJlbmRlcklubGluZShFbGVtZW50KiBlbGVtCiAgICAgc2V0Q2hpbGRy
ZW5JbmxpbmUodHJ1ZSk7CiB9CiAKLVJlbmRlcklubGluZSogUmVuZGVySW5saW5lOjpjcmVhdGVB
bm9ueW1vdXMoRG9jdW1lbnQqIGRvY3VtZW50KQorUmVuZGVySW5saW5lKiBSZW5kZXJJbmxpbmU6
OmNyZWF0ZUFub255bW91cyhEb2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgUmVuZGVySW5saW5l
KiByZW5kZXJlciA9IG5ldyAoZG9jdW1lbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlcklubGluZSgw
KTsKKyAgICBSZW5kZXJJbmxpbmUqIHJlbmRlcmVyID0gbmV3IChkb2N1bWVudC5yZW5kZXJBcmVu
YSgpKSBSZW5kZXJJbmxpbmUoMCk7CiAgICAgcmVuZGVyZXItPnNldERvY3VtZW50Rm9yQW5vbnlt
b3VzKGRvY3VtZW50KTsKICAgICByZXR1cm4gcmVuZGVyZXI7CiB9CkBAIC0zMTgsNyArMzE4LDcg
QEAgdm9pZCBSZW5kZXJJbmxpbmU6OmFkZENoaWxkSWdub3JpbmdDb250aQogICAgICAgICBpZiAo
UmVuZGVyT2JqZWN0KiBwb3NpdGlvbmVkQW5jZXN0b3IgPSBpbkZsb3dQb3NpdGlvbmVkSW5saW5l
QW5jZXN0b3IodGhpcykpCiAgICAgICAgICAgICBuZXdTdHlsZS0+c2V0UG9zaXRpb24ocG9zaXRp
b25lZEFuY2VzdG9yLT5zdHlsZSgpLT5wb3NpdGlvbigpKTsKIAotICAgICAgICBSZW5kZXJCbG9j
ayogbmV3Qm94ID0gUmVuZGVyQmxvY2s6OmNyZWF0ZUFub255bW91cygmZG9jdW1lbnQoKSk7Cisg
ICAgICAgIFJlbmRlckJsb2NrKiBuZXdCb3ggPSBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3Vz
KGRvY3VtZW50KCkpOwogICAgICAgICBuZXdCb3gtPnNldFN0eWxlKG5ld1N0eWxlLnJlbGVhc2Uo
KSk7CiAgICAgICAgIFJlbmRlckJveE1vZGVsT2JqZWN0KiBvbGRDb250aW51YXRpb24gPSBjb250
aW51YXRpb24oKTsKICAgICAgICAgc2V0Q29udGludWF0aW9uKG5ld0JveCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCShyZXZpc2lvbiAxNTU4MTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDcgKzM1LDcgQEAgY2xhc3MgUmVuZGVySW5saW5lIDogcHVibGljIFJlbmRlckJveE1vZAog
cHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlcklubGluZShFbGVtZW50Kik7CiAKLSAgICBzdGF0
aWMgUmVuZGVySW5saW5lKiBjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMg
UmVuZGVySW5saW5lKiBjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQmKTsKIAogICAgIFJlbmRlck9i
amVjdCogZmlyc3RDaGlsZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4uZmlyc3RDaGlsZCgp
OyB9CiAgICAgUmVuZGVyT2JqZWN0KiBsYXN0Q2hpbGQoKSBjb25zdCB7IHJldHVybiBtX2NoaWxk
cmVuLmxhc3RDaGlsZCgpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAJKHJldmlzaW9uIDE1NTgxNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzMDQsNyArNjMwNCw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbENvcm5lclN0eWwKICAgICBSZWZQdHI8UmVuZGVyU3R5
bGU+IGNvcm5lciA9IHJlbmRlcmVyKCkuaGFzT3ZlcmZsb3dDbGlwKCkgPyBhY3R1YWxSZW5kZXJl
ci0+Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9TdHlsZVJlcXVlc3QoU0NST0xMQkFSX0NP
Uk5FUiksIGFjdHVhbFJlbmRlcmVyLT5zdHlsZSgpKSA6IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
KDApOwogICAgIGlmIChjb3JuZXIpIHsKICAgICAgICAgaWYgKCFtX3Njcm9sbENvcm5lcikgewot
ICAgICAgICAgICAgbV9zY3JvbGxDb3JuZXIgPSBSZW5kZXJTY3JvbGxiYXJQYXJ0OjpjcmVhdGVB
bm9ueW1vdXMoJnJlbmRlcmVyKCkuZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBtX3Njcm9sbENv
cm5lciA9IFJlbmRlclNjcm9sbGJhclBhcnQ6OmNyZWF0ZUFub255bW91cyhyZW5kZXJlcigpLmRv
Y3VtZW50KCkpOwogICAgICAgICAgICAgbV9zY3JvbGxDb3JuZXItPnNldFBhcmVudCgmcmVuZGVy
ZXIoKSk7CiAgICAgICAgIH0KICAgICAgICAgbV9zY3JvbGxDb3JuZXItPnNldFN0eWxlKGNvcm5l
ci5yZWxlYXNlKCkpOwpAQCAtNjMyMCw3ICs2MzIwLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBk
YXRlUmVzaXplclN0eWxlKCkKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHJlc2l6ZXIgPSByZW5k
ZXJlcigpLmhhc092ZXJmbG93Q2xpcCgpID8gYWN0dWFsUmVuZGVyZXItPmdldFVuY2FjaGVkUHNl
dWRvU3R5bGUoUHNldWRvU3R5bGVSZXF1ZXN0KFJFU0laRVIpLCBhY3R1YWxSZW5kZXJlci0+c3R5
bGUoKSkgOiBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPigwKTsKICAgICBpZiAocmVzaXplcikgewog
ICAgICAgICBpZiAoIW1fcmVzaXplcikgewotICAgICAgICAgICAgbV9yZXNpemVyID0gUmVuZGVy
U2Nyb2xsYmFyUGFydDo6Y3JlYXRlQW5vbnltb3VzKCZyZW5kZXJlcigpLmRvY3VtZW50KCkpOwor
ICAgICAgICAgICAgbV9yZXNpemVyID0gUmVuZGVyU2Nyb2xsYmFyUGFydDo6Y3JlYXRlQW5vbnlt
b3VzKHJlbmRlcmVyKCkuZG9jdW1lbnQoKSk7CiAgICAgICAgICAgICBtX3Jlc2l6ZXItPnNldFBh
cmVudCgmcmVuZGVyZXIoKSk7CiAgICAgICAgIH0KICAgICAgICAgbV9yZXNpemVyLT5zZXRTdHls
ZShyZXNpemVyLnJlbGVhc2UoKSk7CkBAIC02MzM4LDcgKzYzMzgsNyBAQCBSZW5kZXJMYXllciog
UmVuZGVyTGF5ZXI6OnJlZmxlY3Rpb25MYXllCiB2b2lkIFJlbmRlckxheWVyOjpjcmVhdGVSZWZs
ZWN0aW9uKCkKIHsKICAgICBBU1NFUlQoIW1fcmVmbGVjdGlvbik7Ci0gICAgbV9yZWZsZWN0aW9u
ID0gUmVuZGVyUmVwbGljYTo6Y3JlYXRlQW5vbnltb3VzKCZyZW5kZXJlcigpLmRvY3VtZW50KCkp
OworICAgIG1fcmVmbGVjdGlvbiA9IFJlbmRlclJlcGxpY2E6OmNyZWF0ZUFub255bW91cyhyZW5k
ZXJlcigpLmRvY3VtZW50KCkpOwogICAgIG1fcmVmbGVjdGlvbi0+c2V0UGFyZW50KCZyZW5kZXJl
cigpKTsgLy8gV2UgY3JlYXRlIGEgMS13YXkgY29ubmVjdGlvbi4KIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAkocmV2aXNpb24gMTU1
ODE3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTM2LDcgKzExMzYsNyBAQCBSZW5kZXJMaXN0TWFya2VyKiBSZW5k
ZXJMaXN0TWFya2VyOjpjcmVhCiB7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gbGlzdEl0ZW0u
ZG9jdW1lbnQoKTsKICAgICBSZW5kZXJMaXN0TWFya2VyKiByZW5kZXJlciA9IG5ldyAoZG9jdW1l
bnQucmVuZGVyQXJlbmEoKSkgUmVuZGVyTGlzdE1hcmtlcihsaXN0SXRlbSk7Ci0gICAgcmVuZGVy
ZXItPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKCZkb2N1bWVudCk7CisgICAgcmVuZGVyZXItPnNl
dERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKICAgICByZXR1cm4gcmVuZGVyZXI7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2Nr
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlD
b2x1bW5CbG9jay5jcHAJKHJldmlzaW9uIDE1NTgxNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM5LDcg
KzEzOSw3IEBAIGJvb2wgUmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6cmVsYXlvdXRGb3IKIHZvaWQg
UmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwg
UmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCkKIHsKICAgICBpZiAoIW1fZmxvd1RocmVhZCkgewot
ICAgICAgICBtX2Zsb3dUaHJlYWQgPSBSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQ6OmNyZWF0
ZUFub255bW91cygmZG9jdW1lbnQoKSk7CisgICAgICAgIG1fZmxvd1RocmVhZCA9IFJlbmRlck11
bHRpQ29sdW1uRmxvd1RocmVhZDo6Y3JlYXRlQW5vbnltb3VzKGRvY3VtZW50KCkpOwogICAgICAg
ICBtX2Zsb3dUaHJlYWQtPnNldFN0eWxlKFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHls
ZVdpdGhEaXNwbGF5KHN0eWxlKCksIEJMT0NLKSk7CiAgICAgICAgIFJlbmRlckJsb2NrOjphZGRD
aGlsZChtX2Zsb3dUaHJlYWQpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuY3BwCShyZXZpc2lv
biAxNTU4MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5G
bG93VGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsOSArNDAsOSBAQCBSZW5kZXJNdWx0
aUNvbHVtbkZsb3dUaHJlYWQ6On5SZW5kZXJNdWx0CiB7CiB9CiAKLVJlbmRlck11bHRpQ29sdW1u
Rmxvd1RocmVhZCogUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkOjpjcmVhdGVBbm9ueW1vdXMo
RG9jdW1lbnQqIGRvY3VtZW50KQorUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkKiBSZW5kZXJN
dWx0aUNvbHVtbkZsb3dUaHJlYWQ6OmNyZWF0ZUFub255bW91cyhEb2N1bWVudCYgZG9jdW1lbnQp
CiB7Ci0gICAgUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkKiByZW5kZXJlciA9IG5ldyAoZG9j
dW1lbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZCgpOworICAg
IFJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZCogcmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LnJl
bmRlckFyZW5hKCkpIFJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZCgpOwogICAgIHJlbmRlcmVy
LT5zZXREb2N1bWVudEZvckFub255bW91cyhkb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlbmRlcmVy
OwogfQpAQCAtOTIsNyArOTIsNyBAQCB2b2lkIFJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZDo6
YXV0b0dlCiAgICAgaW52YWxpZGF0ZVJlZ2lvbnMoKTsKIAogICAgIFJlbmRlck11bHRpQ29sdW1u
QmxvY2sqIHBhcmVudEJsb2NrID0gdG9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrKHBhcmVudCgpKTsK
LSAgICBmaXJzdFNldCA9IFJlbmRlck11bHRpQ29sdW1uU2V0OjpjcmVhdGVBbm9ueW1vdXModGhp
cyk7CisgICAgZmlyc3RTZXQgPSBSZW5kZXJNdWx0aUNvbHVtblNldDo6Y3JlYXRlQW5vbnltb3Vz
KCp0aGlzKTsKICAgICBmaXJzdFNldC0+c2V0U3R5bGUoUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255
bW91c1N0eWxlV2l0aERpc3BsYXkocGFyZW50QmxvY2stPnN0eWxlKCksIEJMT0NLKSk7CiAgICAg
cGFyZW50QmxvY2stPlJlbmRlckJsb2NrOjphZGRDaGlsZChmaXJzdFNldCk7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93
VGhyZWFkLmgJKHJldmlzaW9uIDE1NTgxNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUs
NyBAQCBjbGFzcyBSZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQgRklOQUwgCiBwdWJsaWM6CiAg
ICAgflJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZCgpOwogCi0gICAgc3RhdGljIFJlbmRlck11
bHRpQ29sdW1uRmxvd1RocmVhZCogY3JlYXRlQW5vbnltb3VzKERvY3VtZW50Kik7CisgICAgc3Rh
dGljIFJlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZCogY3JlYXRlQW5vbnltb3VzKERvY3VtZW50
Jik7CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkKCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5j
cHAJKHJldmlzaW9uIDE1NTgxNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
dWx0aUNvbHVtblNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDExICs0OSwxMSBAQCBSZW5k
ZXJNdWx0aUNvbHVtblNldDo6UmVuZGVyTXVsdGlDb2x1bW5TCiB7CiB9CiAKLVJlbmRlck11bHRp
Q29sdW1uU2V0KiBSZW5kZXJNdWx0aUNvbHVtblNldDo6Y3JlYXRlQW5vbnltb3VzKFJlbmRlckZs
b3dUaHJlYWQqIGZsb3dUaHJlYWQpCitSZW5kZXJNdWx0aUNvbHVtblNldCogUmVuZGVyTXVsdGlD
b2x1bW5TZXQ6OmNyZWF0ZUFub255bW91cyhSZW5kZXJGbG93VGhyZWFkJiBmbG93VGhyZWFkKQog
ewotICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGZsb3dUaHJlYWQtPmRvY3VtZW50KCk7Ci0gICAg
UmVuZGVyTXVsdGlDb2x1bW5TZXQqIHJlbmRlcmVyID0gbmV3IChkb2N1bWVudC5yZW5kZXJBcmVu
YSgpKSBSZW5kZXJNdWx0aUNvbHVtblNldChmbG93VGhyZWFkKTsKLSAgICByZW5kZXJlci0+c2V0
RG9jdW1lbnRGb3JBbm9ueW1vdXMoJmRvY3VtZW50KTsKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQg
PSBmbG93VGhyZWFkLmRvY3VtZW50KCk7CisgICAgUmVuZGVyTXVsdGlDb2x1bW5TZXQqIHJlbmRl
cmVyID0gbmV3IChkb2N1bWVudC5yZW5kZXJBcmVuYSgpKSBSZW5kZXJNdWx0aUNvbHVtblNldCgm
Zmxvd1RocmVhZCk7CisgICAgcmVuZGVyZXItPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3Vt
ZW50KTsKICAgICByZXR1cm4gcmVuZGVyZXI7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCShyZXZpc2lvbiAxNTU4MTcpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBjb21lIGJl
Zm9yZSBhbmQgYWZ0ZXIgdGhlIHNwYW4uCiBjbGFzcyBSZW5kZXJNdWx0aUNvbHVtblNldCBGSU5B
TCA6IHB1YmxpYyBSZW5kZXJSZWdpb25TZXQgewogcHVibGljOgotICAgIHN0YXRpYyBSZW5kZXJN
dWx0aUNvbHVtblNldCogY3JlYXRlQW5vbnltb3VzKFJlbmRlckZsb3dUaHJlYWQqKTsKKyAgICBz
dGF0aWMgUmVuZGVyTXVsdGlDb2x1bW5TZXQqIGNyZWF0ZUFub255bW91cyhSZW5kZXJGbG93VGhy
ZWFkJik7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJNdWx0aUNvbHVtblNldCgpIGNvbnN0
IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAJKHJldmlzaW9uIDE1NTgxNykK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00NCwxMCArNDQsMTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1SZW5kZXJOYW1lZEZsb3dUaHJlYWQqIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6Y3JlYXRlQW5v
bnltb3VzKERvY3VtZW50KiBkb2N1bWVudCwgUGFzc1JlZlB0cjxXZWJLaXROYW1lZEZsb3c+IG5h
bWVkRmxvdykKK1JlbmRlck5hbWVkRmxvd1RocmVhZCogUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpj
cmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXNzUmVmUHRyPFdlYktpdE5hbWVk
Rmxvdz4gbmFtZWRGbG93KQogewotICAgIEFTU0VSVChkb2N1bWVudC0+Y3NzUmVnaW9uc0VuYWJs
ZWQoKSk7Ci0gICAgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiByZW5kZXJlciA9IG5ldyAoZG9jdW1l
bnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlck5hbWVkRmxvd1RocmVhZChuYW1lZEZsb3cpOworICAg
IEFTU0VSVChkb2N1bWVudC5jc3NSZWdpb25zRW5hYmxlZCgpKTsKKyAgICBSZW5kZXJOYW1lZEZs
b3dUaHJlYWQqIHJlbmRlcmVyID0gbmV3IChkb2N1bWVudC5yZW5kZXJBcmVuYSgpKSBSZW5kZXJO
YW1lZEZsb3dUaHJlYWQobmFtZWRGbG93KTsKICAgICByZW5kZXJlci0+c2V0RG9jdW1lbnRGb3JB
bm9ueW1vdXMoZG9jdW1lbnQpOwogICAgIHJldHVybiByZW5kZXJlcjsKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgJKHJldmlz
aW9uIDE1NTgxNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dU
aHJlYWQuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBSZW5kZXJOYW1l
ZEZsb3dUaHJlYWQgRklOQUwgOiBwdWJsCiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVuZGVyTmFt
ZWRGbG93VGhyZWFkKCk7CiAKLSAgICBzdGF0aWMgUmVuZGVyTmFtZWRGbG93VGhyZWFkKiBjcmVh
dGVBbm9ueW1vdXMoRG9jdW1lbnQqLCBQYXNzUmVmUHRyPFdlYktpdE5hbWVkRmxvdz4pOworICAg
IHN0YXRpYyBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGNyZWF0ZUFub255bW91cyhEb2N1bWVudCYs
IFBhc3NSZWZQdHI8V2ViS2l0TmFtZWRGbG93Pik7CiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcm
IGZsb3dUaHJlYWROYW1lKCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDE1NTgxNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzMCw3ICsxMDMwLDcgQEAg
cHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9UcmVlKCk7CiAgICAgdmly
dHVhbCB2b2lkIHdpbGxCZVJlbW92ZWRGcm9tVHJlZSgpOwogCi0gICAgdm9pZCBzZXREb2N1bWVu
dEZvckFub255bW91cyhEb2N1bWVudCogZG9jdW1lbnQpIHsgQVNTRVJUKGlzQW5vbnltb3VzKCkp
OyBtX25vZGUgPSBkb2N1bWVudDsgfQorICAgIHZvaWQgc2V0RG9jdW1lbnRGb3JBbm9ueW1vdXMo
RG9jdW1lbnQmIGRvY3VtZW50KSB7IEFTU0VSVChpc0Fub255bW91cygpKTsgbV9ub2RlID0gJmRv
Y3VtZW50OyB9CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyRmxvd1RocmVhZCogbG9jYXRlRmxvd1Ro
cmVhZENvbnRhaW5pbmdCbG9jaygpIGNvbnN0OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxpY2EuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsaWNhLmNwcAkocmV2aXNpb24gMTU1ODE3KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw5ICs0
NCw5IEBAIFJlbmRlclJlcGxpY2E6OlJlbmRlclJlcGxpY2EoKQogICAgIHNldFJlcGxhY2VkKHRy
dWUpOwogfQogCi1SZW5kZXJSZXBsaWNhKiBSZW5kZXJSZXBsaWNhOjpjcmVhdGVBbm9ueW1vdXMo
RG9jdW1lbnQqIGRvY3VtZW50KQorUmVuZGVyUmVwbGljYSogUmVuZGVyUmVwbGljYTo6Y3JlYXRl
QW5vbnltb3VzKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBSZW5kZXJSZXBsaWNhKiByZW5k
ZXJlciA9IG5ldyAoZG9jdW1lbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlclJlcGxpY2EoKTsKKyAg
ICBSZW5kZXJSZXBsaWNhKiByZW5kZXJlciA9IG5ldyAoZG9jdW1lbnQucmVuZGVyQXJlbmEoKSkg
UmVuZGVyUmVwbGljYSgpOwogICAgIHJlbmRlcmVyLT5zZXREb2N1bWVudEZvckFub255bW91cyhk
b2N1bWVudCk7CiAgICAgcmV0dXJuIHJlbmRlcmVyOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5oCShyZXZpc2lvbiAxNTU4MTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICsz
NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyUmVwbGljYSBGSU5BTCA6
IHB1YmxpYyBSZW5kZXJCb3ggewogcHVibGljOgotICAgIHN0YXRpYyBSZW5kZXJSZXBsaWNhKiBj
cmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQqKTsKKyAgICBzdGF0aWMgUmVuZGVyUmVwbGljYSogY3Jl
YXRlQW5vbnltb3VzKERvY3VtZW50Jik7CiAKICAgICB2aXJ0dWFsIH5SZW5kZXJSZXBsaWNhKCk7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAJKHJldmlzaW9u
IDE1NTgxNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODMsMTAgKzgzLDEwIEBAIHN0YXRpYyBpbmxpbmUgUmVuZGVyQmxvY2sq
IHJ1YnlBZnRlckJsb2MKICAgICByZXR1cm4gaXNSdWJ5QWZ0ZXJCbG9jayhjaGlsZCkgPyB0b1Jl
bmRlckJsb2NrKGNoaWxkKSA6IDA7CiB9CiAKLXN0YXRpYyBSZW5kZXJCbG9jayogY3JlYXRlQW5v
bnltb3VzUnVieUlubGluZUJsb2NrKFJlbmRlck9iamVjdCogcnVieSkKK3N0YXRpYyBSZW5kZXJC
bG9jayogY3JlYXRlQW5vbnltb3VzUnVieUlubGluZUJsb2NrKFJlbmRlck9iamVjdCYgcnVieSkK
IHsKLSAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0
ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkocnVieS0+c3R5bGUoKSwgSU5MSU5FX0JMT0NLKTsK
LSAgICBSZW5kZXJCbG9jayogbmV3QmxvY2sgPSBSZW5kZXJCbG9jazo6Y3JlYXRlQW5vbnltb3Vz
KCZydWJ5LT5kb2N1bWVudCgpKTsKKyAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0g
UmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkocnVieS5zdHlsZSgp
LCBJTkxJTkVfQkxPQ0spOworICAgIFJlbmRlckJsb2NrKiBuZXdCbG9jayA9IFJlbmRlckJsb2Nr
OjpjcmVhdGVBbm9ueW1vdXMocnVieS5kb2N1bWVudCgpKTsKICAgICBuZXdCbG9jay0+c2V0U3R5
bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKICAgICByZXR1cm4gbmV3QmxvY2s7CiB9CkBAIC0xMzUs
NyArMTM1LDcgQEAgdm9pZCBSZW5kZXJSdWJ5QXNJbmxpbmU6OmFkZENoaWxkKFJlbmRlcgogICAg
ICAgICAgICAgLy8gV3JhcCBub24taW5saW5lIGNvbnRlbnQgd2l0aCBhbiBhbm9ueW1vdXMgaW5s
aW5lLWJsb2NrLgogICAgICAgICAgICAgUmVuZGVyQmxvY2sqIGJlZm9yZUJsb2NrID0gcnVieUJl
Zm9yZUJsb2NrKHRoaXMpOwogICAgICAgICAgICAgaWYgKCFiZWZvcmVCbG9jaykgewotICAgICAg
ICAgICAgICAgIGJlZm9yZUJsb2NrID0gY3JlYXRlQW5vbnltb3VzUnVieUlubGluZUJsb2NrKHRo
aXMpOworICAgICAgICAgICAgICAgIGJlZm9yZUJsb2NrID0gY3JlYXRlQW5vbnltb3VzUnVieUlu
bGluZUJsb2NrKCp0aGlzKTsKICAgICAgICAgICAgICAgICBSZW5kZXJJbmxpbmU6OmFkZENoaWxk
KGJlZm9yZUJsb2NrLCBmaXJzdENoaWxkKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YmVmb3JlQmxvY2stPmFkZENoaWxkKGNoaWxkKTsKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIFJl
bmRlclJ1YnlBc0lubGluZTo6YWRkQ2hpbGQoUmVuZGVyCiAgICAgICAgICAgICAvLyBXcmFwIG5v
bi1pbmxpbmUgY29udGVudCB3aXRoIGFuIGFub255bW91cyBpbmxpbmUtYmxvY2suCiAgICAgICAg
ICAgICBSZW5kZXJCbG9jayogYWZ0ZXJCbG9jayA9IHJ1YnlBZnRlckJsb2NrKHRoaXMpOwogICAg
ICAgICAgICAgaWYgKCFhZnRlckJsb2NrKSB7Ci0gICAgICAgICAgICAgICAgYWZ0ZXJCbG9jayA9
IGNyZWF0ZUFub255bW91c1J1YnlJbmxpbmVCbG9jayh0aGlzKTsKKyAgICAgICAgICAgICAgICBh
ZnRlckJsb2NrID0gY3JlYXRlQW5vbnltb3VzUnVieUlubGluZUJsb2NrKCp0aGlzKTsKICAgICAg
ICAgICAgICAgICBSZW5kZXJJbmxpbmU6OmFkZENoaWxkKGFmdGVyQmxvY2spOwogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYWZ0ZXJCbG9jay0+YWRkQ2hpbGQoY2hpbGQpOwpAQCAtMjQxLDcg
KzI0MSw3IEBAIHZvaWQgUmVuZGVyUnVieUFzQmxvY2s6OmFkZENoaWxkKFJlbmRlck8KICAgICAg
ICAgICAgIC8vIFdyYXAgbm9uLWlubGluZSBjb250ZW50IHdpdGggYW4gYW5vbnltb3VzIGlubGlu
ZS1ibG9jay4KICAgICAgICAgICAgIFJlbmRlckJsb2NrKiBiZWZvcmVCbG9jayA9IHJ1YnlCZWZv
cmVCbG9jayh0aGlzKTsKICAgICAgICAgICAgIGlmICghYmVmb3JlQmxvY2spIHsKLSAgICAgICAg
ICAgICAgICBiZWZvcmVCbG9jayA9IGNyZWF0ZUFub255bW91c1J1YnlJbmxpbmVCbG9jayh0aGlz
KTsKKyAgICAgICAgICAgICAgICBiZWZvcmVCbG9jayA9IGNyZWF0ZUFub255bW91c1J1YnlJbmxp
bmVCbG9jaygqdGhpcyk7CiAgICAgICAgICAgICAgICAgUmVuZGVyQmxvY2s6OmFkZENoaWxkKGJl
Zm9yZUJsb2NrLCBmaXJzdENoaWxkKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYmVm
b3JlQmxvY2stPmFkZENoaWxkKGNoaWxkKTsKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIFJlbmRl
clJ1YnlBc0Jsb2NrOjphZGRDaGlsZChSZW5kZXJPCiAgICAgICAgICAgICAvLyBXcmFwIG5vbi1p
bmxpbmUgY29udGVudCB3aXRoIGFuIGFub255bW91cyBpbmxpbmUtYmxvY2suCiAgICAgICAgICAg
ICBSZW5kZXJCbG9jayogYWZ0ZXJCbG9jayA9IHJ1YnlBZnRlckJsb2NrKHRoaXMpOwogICAgICAg
ICAgICAgaWYgKCFhZnRlckJsb2NrKSB7Ci0gICAgICAgICAgICAgICAgYWZ0ZXJCbG9jayA9IGNy
ZWF0ZUFub255bW91c1J1YnlJbmxpbmVCbG9jayh0aGlzKTsKKyAgICAgICAgICAgICAgICBhZnRl
ckJsb2NrID0gY3JlYXRlQW5vbnltb3VzUnVieUlubGluZUJsb2NrKCp0aGlzKTsKICAgICAgICAg
ICAgICAgICBSZW5kZXJCbG9jazo6YWRkQ2hpbGQoYWZ0ZXJCbG9jayk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBhZnRlckJsb2NrLT5hZGRDaGlsZChjaGlsZCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAJKHJldmlzaW9uIDE1NTgxNykK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ4LDkgKzQ4LDkgQEAgUmVuZGVyUnVieUJhc2U6On5SZW5kZXJSdWJ5QmFzZSgp
CiB7CiB9CiAKLVJlbmRlclJ1YnlCYXNlKiBSZW5kZXJSdWJ5QmFzZTo6Y3JlYXRlQW5vbnltb3Vz
KERvY3VtZW50KiBkb2N1bWVudCkKK1JlbmRlclJ1YnlCYXNlKiBSZW5kZXJSdWJ5QmFzZTo6Y3Jl
YXRlQW5vbnltb3VzKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBSZW5kZXJSdWJ5QmFzZSog
cmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJSdWJ5QmFzZSgp
OworICAgIFJlbmRlclJ1YnlCYXNlKiByZW5kZXJlciA9IG5ldyAoZG9jdW1lbnQucmVuZGVyQXJl
bmEoKSkgUmVuZGVyUnVieUJhc2UoKTsKICAgICByZW5kZXJlci0+c2V0RG9jdW1lbnRGb3JBbm9u
eW1vdXMoZG9jdW1lbnQpOwogICAgIHJldHVybiByZW5kZXJlcjsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5QmFzZS5oCShyZXZpc2lvbiAxNTU4MTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieUJhc2UuaAkod29ya2luZyBjb3B5KQpA
QCAtNDEsNyArNDEsNyBAQCBjbGFzcyBSZW5kZXJSdWJ5QmFzZSBGSU5BTCA6IHB1YmxpYyBSZW5k
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVuZGVyUnVieUJhc2UoKTsKICAgICAKLSAgICBzdGF0
aWMgUmVuZGVyUnVieUJhc2UqIGNyZWF0ZUFub255bW91cyhEb2N1bWVudCopOworICAgIHN0YXRp
YyBSZW5kZXJSdWJ5QmFzZSogY3JlYXRlQW5vbnltb3VzKERvY3VtZW50Jik7CiAKICAgICB2aXJ0
dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyUnVieUJh
c2UgKGFub255bW91cykiOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSdWJ5UnVuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUnVieVJ1bi5jcHAJKHJldmlzaW9uIDE1NTgxNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSdWJ5UnVuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDcgKzIwMCw3IEBA
IHZvaWQgUmVuZGVyUnVieVJ1bjo6cmVtb3ZlQ2hpbGQoUmVuZGVyT2IKIAogUmVuZGVyUnVieUJh
c2UqIFJlbmRlclJ1YnlSdW46OmNyZWF0ZVJ1YnlCYXNlKCkgY29uc3QKIHsKLSAgICBSZW5kZXJS
dWJ5QmFzZSogcmVuZGVyZXIgPSBSZW5kZXJSdWJ5QmFzZTo6Y3JlYXRlQW5vbnltb3VzKCZkb2N1
bWVudCgpKTsKKyAgICBSZW5kZXJSdWJ5QmFzZSogcmVuZGVyZXIgPSBSZW5kZXJSdWJ5QmFzZTo6
Y3JlYXRlQW5vbnltb3VzKGRvY3VtZW50KCkpOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3
U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheShzdHls
ZSgpLCBCTE9DSyk7CiAgICAgbmV3U3R5bGUtPnNldFRleHRBbGlnbihDRU5URVIpOyAvLyBGSVhN
RTogdXNlIFdFQktJVF9DRU5URVI/CiAgICAgcmVuZGVyZXItPnNldFN0eWxlKG5ld1N0eWxlLnJl
bGVhc2UoKSk7CkBAIC0yMTEsNyArMjExLDcgQEAgUmVuZGVyUnVieVJ1biogUmVuZGVyUnVieVJ1
bjo6c3RhdGljQ3JlYQogewogICAgIEFTU0VSVChwYXJlbnRSdWJ5ICYmIHBhcmVudFJ1YnktPmlz
UnVieSgpKTsKICAgICBSZW5kZXJSdWJ5UnVuKiByciA9IG5ldyAocGFyZW50UnVieS0+cmVuZGVy
QXJlbmEoKSkgUmVuZGVyUnVieVJ1bigpOwotICAgIHJyLT5zZXREb2N1bWVudEZvckFub255bW91
cygmcGFyZW50UnVieS0+ZG9jdW1lbnQoKSk7CisgICAgcnItPnNldERvY3VtZW50Rm9yQW5vbnlt
b3VzKHBhcmVudFJ1YnktPmRvY3VtZW50KCkpOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbmV3
U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGVXaXRoRGlzcGxheShwYXJl
bnRSdWJ5LT5zdHlsZSgpLCBJTkxJTkVfQkxPQ0spOwogICAgIHJyLT5zZXRTdHlsZShuZXdTdHls
ZS5yZWxlYXNlKCkpOwogICAgIHJldHVybiBycjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwCShyZXZpc2lvbiAxNTU4MTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjUzLDcgKzI1Myw3IEBAIHZvaWQgUmVuZGVyU2Nyb2xsYmFyOjp1cGRhdGVTY3JvbGxiYXJQYXIK
ICAgICAKICAgICBSZW5kZXJTY3JvbGxiYXJQYXJ0KiBwYXJ0UmVuZGVyZXIgPSBtX3BhcnRzLmdl
dChwYXJ0VHlwZSk7CiAgICAgaWYgKCFwYXJ0UmVuZGVyZXIgJiYgbmVlZFJlbmRlcmVyKSB7Ci0g
ICAgICAgIHBhcnRSZW5kZXJlciA9IFJlbmRlclNjcm9sbGJhclBhcnQ6OmNyZWF0ZUFub255bW91
cygmb3duaW5nUmVuZGVyZXIoKS0+ZG9jdW1lbnQoKSwgdGhpcywgcGFydFR5cGUpOworICAgICAg
ICBwYXJ0UmVuZGVyZXIgPSBSZW5kZXJTY3JvbGxiYXJQYXJ0OjpjcmVhdGVBbm9ueW1vdXMob3du
aW5nUmVuZGVyZXIoKS0+ZG9jdW1lbnQoKSwgdGhpcywgcGFydFR5cGUpOwogICAgICAgICBtX3Bh
cnRzLnNldChwYXJ0VHlwZSwgcGFydFJlbmRlcmVyKTsKICAgICB9IGVsc2UgaWYgKHBhcnRSZW5k
ZXJlciAmJiAhbmVlZFJlbmRlcmVyKSB7CiAgICAgICAgIG1fcGFydHMucmVtb3ZlKHBhcnRUeXBl
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJQYXJ0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFy
UGFydC5jcHAJKHJldmlzaW9uIDE1NTgxNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTY3JvbGxiYXJQYXJ0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsOSArNDcsOSBAQCBS
ZW5kZXJTY3JvbGxiYXJQYXJ0Ojp+UmVuZGVyU2Nyb2xsYmFyUGFyCiB7CiB9CiAKLVJlbmRlclNj
cm9sbGJhclBhcnQqIFJlbmRlclNjcm9sbGJhclBhcnQ6OmNyZWF0ZUFub255bW91cyhEb2N1bWVu
dCogZG9jdW1lbnQsIFJlbmRlclNjcm9sbGJhciogc2Nyb2xsYmFyLCBTY3JvbGxiYXJQYXJ0IHBh
cnQpCitSZW5kZXJTY3JvbGxiYXJQYXJ0KiBSZW5kZXJTY3JvbGxiYXJQYXJ0OjpjcmVhdGVBbm9u
eW1vdXMoRG9jdW1lbnQmIGRvY3VtZW50LCBSZW5kZXJTY3JvbGxiYXIqIHNjcm9sbGJhciwgU2Ny
b2xsYmFyUGFydCBwYXJ0KQogewotICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIHJlbmRlcmVyID0g
bmV3IChkb2N1bWVudC0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyU2Nyb2xsYmFyUGFydChzY3JvbGxi
YXIsIHBhcnQpOworICAgIFJlbmRlclNjcm9sbGJhclBhcnQqIHJlbmRlcmVyID0gbmV3IChkb2N1
bWVudC5yZW5kZXJBcmVuYSgpKSBSZW5kZXJTY3JvbGxiYXJQYXJ0KHNjcm9sbGJhciwgcGFydCk7
CiAgICAgcmVuZGVyZXItPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKICAgICBy
ZXR1cm4gcmVuZGVyZXI7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2Nyb2xsYmFyUGFydC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTY3JvbGxiYXJQYXJ0LmgJKHJldmlzaW9uIDE1NTgxNykKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJQYXJ0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcg
KzM1LDcgQEAgY2xhc3MgUmVuZGVyU2Nyb2xsYmFyOwogCiBjbGFzcyBSZW5kZXJTY3JvbGxiYXJQ
YXJ0IEZJTkFMIDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVu
ZGVyU2Nyb2xsYmFyUGFydCogY3JlYXRlQW5vbnltb3VzKERvY3VtZW50KiwgUmVuZGVyU2Nyb2xs
YmFyKiA9IDAsIFNjcm9sbGJhclBhcnQgPSBOb1BhcnQpOworICAgIHN0YXRpYyBSZW5kZXJTY3Jv
bGxiYXJQYXJ0KiBjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQmLCBSZW5kZXJTY3JvbGxiYXIqID0g
MCwgU2Nyb2xsYmFyUGFydCA9IE5vUGFydCk7CiAgICAgCiAgICAgdmlydHVhbCB+UmVuZGVyU2Ny
b2xsYmFyUGFydCgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJs
ZS5jcHAJKHJldmlzaW9uIDE1NTgxNykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MTUsNyArMTQxNSw3IEBAIFJlbmRlclRh
YmxlKiBSZW5kZXJUYWJsZTo6Y3JlYXRlQW5vbnltb3UKIHsKICAgICBSZWZQdHI8UmVuZGVyU3R5
bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3Bs
YXkocGFyZW50LT5zdHlsZSgpLCBUQUJMRSk7CiAgICAgUmVuZGVyVGFibGUqIG5ld1RhYmxlID0g
bmV3IChwYXJlbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlclRhYmxlKDApOwotICAgIG5ld1RhYmxl
LT5zZXREb2N1bWVudEZvckFub255bW91cygmcGFyZW50LT5kb2N1bWVudCgpKTsKKyAgICBuZXdU
YWJsZS0+c2V0RG9jdW1lbnRGb3JBbm9ueW1vdXMocGFyZW50LT5kb2N1bWVudCgpKTsKICAgICBu
ZXdUYWJsZS0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKICAgICByZXR1cm4gbmV3VGFi
bGU7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxs
LmNwcAkocmV2aXNpb24gMTU1ODE3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNjQsMTYgKzEzNjQsMTYgQEAgdm9p
ZCBSZW5kZXJUYWJsZUNlbGw6OnNjcm9sbGJhcnNDaGFuZ2VkKAogICAgICAgICBzZXRJbnRyaW5z
aWNQYWRkaW5nQWZ0ZXIoaW50cmluc2ljUGFkZGluZ0FmdGVyKCkgLSBzY3JvbGxiYXJIZWlnaHQp
OwogfQogCi1SZW5kZXJUYWJsZUNlbGwqIFJlbmRlclRhYmxlQ2VsbDo6Y3JlYXRlQW5vbnltb3Vz
KERvY3VtZW50KiBkb2N1bWVudCkKK1JlbmRlclRhYmxlQ2VsbCogUmVuZGVyVGFibGVDZWxsOjpj
cmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIFJlbmRlclRhYmxlQ2Vs
bCogcmVuZGVyZXIgPSBuZXcgKGRvY3VtZW50LT5yZW5kZXJBcmVuYSgpKSBSZW5kZXJUYWJsZUNl
bGwoMCk7CisgICAgUmVuZGVyVGFibGVDZWxsKiByZW5kZXJlciA9IG5ldyAoZG9jdW1lbnQucmVu
ZGVyQXJlbmEoKSkgUmVuZGVyVGFibGVDZWxsKDApOwogICAgIHJlbmRlcmVyLT5zZXREb2N1bWVu
dEZvckFub255bW91cyhkb2N1bWVudCk7CiAgICAgcmV0dXJuIHJlbmRlcmVyOwogfQogCiBSZW5k
ZXJUYWJsZUNlbGwqIFJlbmRlclRhYmxlQ2VsbDo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJl
bmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50KQogewotICAgIFJlbmRlclRhYmxlQ2Vs
bCogbmV3Q2VsbCA9IFJlbmRlclRhYmxlQ2VsbDo6Y3JlYXRlQW5vbnltb3VzKCZwYXJlbnQtPmRv
Y3VtZW50KCkpOworICAgIFJlbmRlclRhYmxlQ2VsbCogbmV3Q2VsbCA9IFJlbmRlclRhYmxlQ2Vs
bDo6Y3JlYXRlQW5vbnltb3VzKHBhcmVudC0+ZG9jdW1lbnQoKSk7CiAgICAgUmVmUHRyPFJlbmRl
clN0eWxlPiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhE
aXNwbGF5KHBhcmVudC0+c3R5bGUoKSwgVEFCTEVfQ0VMTCk7CiAgICAgbmV3Q2VsbC0+c2V0U3R5
bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKICAgICByZXR1cm4gbmV3Q2VsbDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgJKHJldmlzaW9uIDE1NTgxNykK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAkod29ya2luZyBj
b3B5KQpAQCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKICAgICBib29sIGNlbGxXaWR0aENoYW5n
ZWQoKSBjb25zdCB7IHJldHVybiBtX2NlbGxXaWR0aENoYW5nZWQ7IH0KICAgICB2b2lkIHNldENl
bGxXaWR0aENoYW5nZWQoYm9vbCBiID0gdHJ1ZSkgeyBtX2NlbGxXaWR0aENoYW5nZWQgPSBiOyB9
CiAKLSAgICBzdGF0aWMgUmVuZGVyVGFibGVDZWxsKiBjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQq
KTsKKyAgICBzdGF0aWMgUmVuZGVyVGFibGVDZWxsKiBjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQm
KTsKICAgICBzdGF0aWMgUmVuZGVyVGFibGVDZWxsKiBjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50
UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAgICAgdmlydHVhbCBSZW5kZXJCb3gqIGNy
ZWF0ZUFub255bW91c0JveFdpdGhTYW1lVHlwZUFzKGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50
KSBjb25zdCBPVkVSUklERQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZVJvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlUm93LmNwcAkocmV2aXNpb24gMTU1ODE3KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjY0LDE2ICsy
NjQsMTYgQEAgdm9pZCBSZW5kZXJUYWJsZVJvdzo6aW1hZ2VDaGFuZ2VkKFdyYXBwZQogICAgIHJl
cGFpbnQoKTsKIH0KIAotUmVuZGVyVGFibGVSb3cqIFJlbmRlclRhYmxlUm93OjpjcmVhdGVBbm9u
eW1vdXMoRG9jdW1lbnQqIGRvY3VtZW50KQorUmVuZGVyVGFibGVSb3cqIFJlbmRlclRhYmxlUm93
OjpjcmVhdGVBbm9ueW1vdXMoRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIFJlbmRlclRhYmxl
Um93KiByZW5kZXJlciA9IG5ldyAoZG9jdW1lbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlclRhYmxl
Um93KDApOworICAgIFJlbmRlclRhYmxlUm93KiByZW5kZXJlciA9IG5ldyAoZG9jdW1lbnQucmVu
ZGVyQXJlbmEoKSkgUmVuZGVyVGFibGVSb3coMCk7CiAgICAgcmVuZGVyZXItPnNldERvY3VtZW50
Rm9yQW5vbnltb3VzKGRvY3VtZW50KTsKICAgICByZXR1cm4gcmVuZGVyZXI7CiB9CiAKIFJlbmRl
clRhYmxlUm93KiBSZW5kZXJUYWJsZVJvdzo6Y3JlYXRlQW5vbnltb3VzV2l0aFBhcmVudFJlbmRl
cmVyKGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50KQogewotICAgIFJlbmRlclRhYmxlUm93KiBu
ZXdSb3cgPSBSZW5kZXJUYWJsZVJvdzo6Y3JlYXRlQW5vbnltb3VzKCZwYXJlbnQtPmRvY3VtZW50
KCkpOworICAgIFJlbmRlclRhYmxlUm93KiBuZXdSb3cgPSBSZW5kZXJUYWJsZVJvdzo6Y3JlYXRl
QW5vbnltb3VzKHBhcmVudC0+ZG9jdW1lbnQoKSk7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiBu
ZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5KHBh
cmVudC0+c3R5bGUoKSwgVEFCTEVfUk9XKTsKICAgICBuZXdSb3ctPnNldFN0eWxlKG5ld1N0eWxl
LnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIG5ld1JvdzsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCShyZXZpc2lvbiAxNTU4MTcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyAr
NDcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHBhaW50T3V0bGluZUZvclJvd0lmTmVlZGVkKFBh
aW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAKLSAgICBzdGF0aWMgUmVuZGVyVGFibGVS
b3cqIGNyZWF0ZUFub255bW91cyhEb2N1bWVudCopOworICAgIHN0YXRpYyBSZW5kZXJUYWJsZVJv
dyogY3JlYXRlQW5vbnltb3VzKERvY3VtZW50Jik7CiAgICAgc3RhdGljIFJlbmRlclRhYmxlUm93
KiBjcmVhdGVBbm9ueW1vdXNXaXRoUGFyZW50UmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0Kik7
CiAgICAgdmlydHVhbCBSZW5kZXJCb3gqIGNyZWF0ZUFub255bW91c0JveFdpdGhTYW1lVHlwZUFz
KGNvbnN0IFJlbmRlck9iamVjdCogcGFyZW50KSBjb25zdCBPVkVSUklERQogICAgIHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCShy
ZXZpc2lvbiAxNTU4MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVT
ZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQzOCw3ICsxNDM4LDcgQEAgUmVuZGVyVGFi
bGVTZWN0aW9uKiBSZW5kZXJUYWJsZVNlY3Rpb246OgogewogICAgIFJlZlB0cjxSZW5kZXJTdHls
ZT4gbmV3U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y3JlYXRlQW5vbnltb3VzU3R5bGVXaXRoRGlzcGxh
eShwYXJlbnQtPnN0eWxlKCksIFRBQkxFX1JPV19HUk9VUCk7CiAgICAgUmVuZGVyVGFibGVTZWN0
aW9uKiBuZXdTZWN0aW9uID0gbmV3IChwYXJlbnQtPnJlbmRlckFyZW5hKCkpIFJlbmRlclRhYmxl
U2VjdGlvbigwKTsKLSAgICBuZXdTZWN0aW9uLT5zZXREb2N1bWVudEZvckFub255bW91cygmcGFy
ZW50LT5kb2N1bWVudCgpKTsKKyAgICBuZXdTZWN0aW9uLT5zZXREb2N1bWVudEZvckFub255bW91
cyhwYXJlbnQtPmRvY3VtZW50KCkpOwogICAgIG5ld1NlY3Rpb24tPnNldFN0eWxlKG5ld1N0eWxl
LnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIG5ld1NlY3Rpb247CiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiAxNTU4MTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MCw3
ICsxNjAsNyBAQCBSZW5kZXJUZXh0OjpSZW5kZXJUZXh0KE5vZGUqIG5vZGUsIFBhc3NSCiAgICAg
Ly8gRklYTUU6IFNvbWUgY2xpZW50cyBvZiBSZW5kZXJUZXh0IChhbmQgc3ViY2xhc3NlcykgcGFz
cyBEb2N1bWVudCBhcyBub2RlIHRvIGNyZWF0ZSBhbm9ueW1vdXMgcmVuZGVyZXIuCiAgICAgLy8g
VGhleSBzaG91bGQgYmUgc3dpdGNoZWQgdG8gcGFzc2luZyBudWxsIGFuZCB1c2luZyBzZXREb2N1
bWVudEZvckFub255bW91cy4KICAgICBpZiAobm9kZSAmJiBub2RlLT5pc0RvY3VtZW50Tm9kZSgp
KQotICAgICAgICBzZXREb2N1bWVudEZvckFub255bW91cyh0b0RvY3VtZW50KG5vZGUpKTsKKyAg
ICAgICAgc2V0RG9jdW1lbnRGb3JBbm9ueW1vdXMoKnRvRG9jdW1lbnQobm9kZSkpOwogCiAgICAg
bV9pc0FsbEFTQ0lJID0gbV90ZXh0LmNvbnRhaW5zT25seUFTQ0lJKCk7CiAgICAgbV9jYW5Vc2VT
aW1wbGVGb250Q29kZVBhdGggPSBjb21wdXRlQ2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCShyZXZpc2lvbiAxNTU4
MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU2LDkgKzU2LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZW5kZXJW
aWV3OjpSZW5kZXJWaWV3KERvY3VtZW50KiBkb2N1bWVudCkKK1JlbmRlclZpZXc6OlJlbmRlclZp
ZXcoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIDogUmVuZGVyQmxvY2tGbG93KDApCi0gICAgLCBt
X2ZyYW1lVmlldygqZG9jdW1lbnQtPnZpZXcoKSkKKyAgICAsIG1fZnJhbWVWaWV3KCpkb2N1bWVu
dC52aWV3KCkpCiAgICAgLCBtX3NlbGVjdGlvblN0YXJ0KDApCiAgICAgLCBtX3NlbGVjdGlvbkVu
ZCgwKQogICAgICwgbV9zZWxlY3Rpb25TdGFydFBvcygtMSkKQEAgLTc5LDcgKzc5LDcgQEAgUmVu
ZGVyVmlldzo6UmVuZGVyVmlldyhEb2N1bWVudCogZG9jdW1lbgogICAgIHNldERvY3VtZW50Rm9y
QW5vbnltb3VzKGRvY3VtZW50KTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZmluZCBhIHdh
eSB0byBlbmZvcmNlIHRoaXMgYXQgY29tcGlsZSB0aW1lLgotICAgIEFTU0VSVChkb2N1bWVudC0+
dmlldygpKTsKKyAgICBBU1NFUlQoZG9jdW1lbnQudmlldygpKTsKIAogICAgIC8vIGluaXQgUmVu
ZGVyT2JqZWN0IGF0dHJpYnV0ZXMKICAgICBzZXRJbmxpbmUoZmFsc2UpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCShyZXZpc2lvbiAxNTU4MTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0
NCw3IEBAIGNsYXNzIEN1c3RvbUZpbHRlckdsb2JhbENvbnRleHQ7CiAKIGNsYXNzIFJlbmRlclZp
ZXcgRklOQUwgOiBwdWJsaWMgUmVuZGVyQmxvY2tGbG93IHsKIHB1YmxpYzoKLSAgICBleHBsaWNp
dCBSZW5kZXJWaWV3KERvY3VtZW50Kik7CisgICAgZXhwbGljaXQgUmVuZGVyVmlldyhEb2N1bWVu
dCYpOwogICAgIHZpcnR1YWwgflJlbmRlclZpZXcoKTsKIAogICAgIGJvb2wgaGl0VGVzdChjb25z
dCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3BwCShyZXZp
c2lvbiAxNTU4MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTEJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQCBSZW5kZXJNYXRo
TUxCbG9jayogUmVuZGVyTWF0aE1MQmxvY2s6OmNyCiB7CiAgICAgUmVmUHRyPFJlbmRlclN0eWxl
PiBuZXdTdHlsZSA9IFJlbmRlclN0eWxlOjpjcmVhdGVBbm9ueW1vdXNTdHlsZVdpdGhEaXNwbGF5
KHN0eWxlKCksIGRpc3BsYXkpOwogICAgIFJlbmRlck1hdGhNTEJsb2NrKiBuZXdCbG9jayA9IG5l
dyAocmVuZGVyQXJlbmEoKSkgUmVuZGVyTWF0aE1MQmxvY2soMCk7Ci0gICAgbmV3QmxvY2stPnNl
dERvY3VtZW50Rm9yQW5vbnltb3VzKCZkb2N1bWVudCgpKTsKKyAgICBuZXdCbG9jay0+c2V0RG9j
dW1lbnRGb3JBbm9ueW1vdXMoZG9jdW1lbnQoKSk7CiAgICAgbmV3QmxvY2stPnNldFN0eWxlKG5l
d1N0eWxlLnJlbGVhc2UoKSk7CiAgICAgcmV0dXJuIG5ld0Jsb2NrOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxSb3cuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MUm93LmNwcAko
cmV2aXNpb24gMTU1ODE3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5k
ZXJNYXRoTUxSb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBAIFJlbmRlck1h
dGhNTFJvdyogUmVuZGVyTWF0aE1MUm93OjpjcmVhdGUKIHsKICAgICBSZWZQdHI8UmVuZGVyU3R5
bGU+IG5ld1N0eWxlID0gUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3Bs
YXkocGFyZW50LT5zdHlsZSgpLCBGTEVYKTsKICAgICBSZW5kZXJNYXRoTUxSb3cqIG5ld01Sb3cg
PSBuZXcgKHBhcmVudC0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyTWF0aE1MUm93KDApOwotICAgIG5l
d01Sb3ctPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKCZwYXJlbnQtPmRvY3VtZW50KCkpOworICAg
IG5ld01Sb3ctPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKHBhcmVudC0+ZG9jdW1lbnQoKSk7CiAg
ICAgbmV3TVJvdy0+c2V0U3R5bGUobmV3U3R5bGUucmVsZWFzZSgpKTsKICAgICByZXR1cm4gbmV3
TVJvdzsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0
aE1MU2NyaXB0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmNwcAkocmV2aXNpb24gMTU1ODE3KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzY0LDcgKzM2NCw3IEBAIFJlbmRlck1hdGhNTFNjcmlwdHNXcmFwcGVyKiBS
ZW5kZXJNYXRoTUwKIHsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG5ld1N0eWxlID0gUmVuZGVy
U3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkocmVuZGVyT2JqZWN0LT5zdHls
ZSgpLCBGTEVYKTsKICAgICBSZW5kZXJNYXRoTUxTY3JpcHRzV3JhcHBlciogbmV3QmxvY2sgPSBu
ZXcgKHJlbmRlck9iamVjdC0+cmVuZGVyQXJlbmEoKSkgUmVuZGVyTWF0aE1MU2NyaXB0c1dyYXBw
ZXIoMCwgdHlwZSk7Ci0gICAgbmV3QmxvY2stPnNldERvY3VtZW50Rm9yQW5vbnltb3VzKCZyZW5k
ZXJPYmplY3QtPmRvY3VtZW50KCkpOworICAgIG5ld0Jsb2NrLT5zZXREb2N1bWVudEZvckFub255
bW91cyhyZW5kZXJPYmplY3QtPmRvY3VtZW50KCkpOwogICAgIG5ld0Jsb2NrLT5zZXRTdHlsZShu
ZXdTdHlsZS5yZWxlYXNlKCkpOwogICAgIHJldHVybiBuZXdCbG9jazsKIH0K
</data>
<flag name="review"
          id="233840"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>