<?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>130201</bug_id>
          
          <creation_ts>2014-03-13 12:06:11 -0700</creation_ts>
          <short_desc>Pass const RenderStyle&amp; to box decoration functions.</short_desc>
          <delta_ts>2014-03-13 20:44:31 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kling</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>990102</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-03-13 12:06:11 -0700</bug_when>
    <thetext>instead of const RenderStyle*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990105</commentid>
    <comment_count>1</comment_count>
      <attachid>226609</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-03-13 12:12:33 -0700</bug_when>
    <thetext>Created attachment 226609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990113</commentid>
    <comment_count>2</comment_count>
      <attachid>226609</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-13 12:21:04 -0700</bug_when>
    <thetext>Comment on attachment 226609
Patch

rs=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>990275</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-03-13 20:44:31 -0700</bug_when>
    <thetext>Committed r165599: &lt;http://trac.webkit.org/changeset/165599&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226609</attachid>
            <date>2014-03-13 12:12:33 -0700</date>
            <delta_ts>2014-03-13 12:20:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130201-20140313121208.patch</filename>
            <type>text/plain</type>
            <size>40617</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM4YmE3M2E4Mjk1NTk2
NDIyYWI1ZTdkOTAxZWE4MzAyZmMyNTI2Ny4uYWQ2YzU3ZWMzNDdhYWU2NTQ1MDEyMDNjMWY2Njhh
ZWVjNWE3NDlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE0LTAzLTEzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUGFzcyBjb25zdCBSZW5kZXJT
dHlsZSYgdG8gYm94IGRlY29yYXRpb24gZnVuY3Rpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisK
KyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbmxpbmVGbG93Qm94OjpwYWludEJveFNoYWRvdyk6CisgICAgICAgIChXZWJDb3JlOjpJbmxp
bmVGbG93Qm94OjpwYWludEJveERlY29yYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OklubGlu
ZUZsb3dCb3g6OnBhaW50TWFzayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwYWludE1hc2tJbWFnZXMpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJbWFnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRPbmVCb3JkZXJTaWRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlclNpZGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludFRyYW5zbHVjZW50Qm9yZGVyU2lk
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpkcmF3Qm94U2lkZUZy
b21QYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpnZXRCb3Jk
ZXJFZGdlSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Ym9y
ZGVyT2JzY3VyZXNCYWNrZ3JvdW5kRWRnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hN
b2RlbE9iamVjdDo6Ym9yZGVyT2JzY3VyZXNCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJveFNoYWRvdyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZp
ZWxkc2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZpZWxkc2V0OjpwYWludEJveERl
Y29yYXRpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OnBhaW50Qm94RGVjb3JhdGlvbnMpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGFibGVDZWxsOjpwYWludEJveERlY29yYXRpb25zKToKKwogMjAxNC0wMy0xMiAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBTeW5jIG1lZGlh
IHBsYXliYWNrIHdpdGggbm93IHBsYXlpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcAppbmRleCA2MGYyYWE4MzU5NmFkN2YwZWM5ODZiMTUzMmU4YzE2NzVkNjVl
ZmY5Li5kOGUwMGIzOWNhMzhkMDU5OTI3YjQxNTU1ZTNmZWNmODBkZWNjNGE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCkBAIC0xMjM5LDExICsxMjM5LDEx
IEBAIHZvaWQgSW5saW5lRmxvd0JveDo6cGFpbnRGaWxsTGF5ZXIoY29uc3QgUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IENvbG9yJiBjLCBjCiB2b2lkIElubGluZUZsb3dCb3g6OnBhaW50Qm94
U2hhZG93KGNvbnN0IFBhaW50SW5mbyYgaW5mbywgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBT
aGFkb3dTdHlsZSBzaGFkb3dTdHlsZSwgY29uc3QgTGF5b3V0UmVjdCYgcGFpbnRSZWN0KQogewog
ICAgIGlmICgoIXByZXZMaW5lQm94KCkgJiYgIW5leHRMaW5lQm94KCkpIHx8ICFwYXJlbnQoKSkK
LSAgICAgICAgcmVuZGVyZXIoKS5wYWludEJveFNoYWRvdyhpbmZvLCBwYWludFJlY3QsICZzdHls
ZSwgc2hhZG93U3R5bGUpOworICAgICAgICByZW5kZXJlcigpLnBhaW50Qm94U2hhZG93KGluZm8s
IHBhaW50UmVjdCwgc3R5bGUsIHNoYWRvd1N0eWxlKTsKICAgICBlbHNlIHsKICAgICAgICAgLy8g
RklYTUU6IFdlIGNhbiBkbyBiZXR0ZXIgaGVyZSBpbiB0aGUgbXVsdGktbGluZSBjYXNlLiBXZSB3
YW50IHRvIHB1c2ggYSBjbGlwIHNvIHRoYXQgdGhlIHNoYWRvdyBkb2Vzbid0CiAgICAgICAgIC8v
IHByb3RydWRlIGluY29ycmVjdGx5IGF0IHRoZSBlZGdlcywgYW5kIHdlIHdhbnQgdG8gcG9zc2li
bHkgaW5jbHVkZSBzaGFkb3dzIGNhc3QgZnJvbSB0aGUgcHJldmlvdXMvZm9sbG93aW5nIGxpbmVz
Ci0gICAgICAgIHJlbmRlcmVyKCkucGFpbnRCb3hTaGFkb3coaW5mbywgcGFpbnRSZWN0LCAmc3R5
bGUsIHNoYWRvd1N0eWxlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlKCksIGluY2x1ZGVMb2dpY2Fs
UmlnaHRFZGdlKCkpOworICAgICAgICByZW5kZXJlcigpLnBhaW50Qm94U2hhZG93KGluZm8sIHBh
aW50UmVjdCwgc3R5bGUsIHNoYWRvd1N0eWxlLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlKCksIGlu
Y2x1ZGVMb2dpY2FsUmlnaHRFZGdlKCkpOwogICAgIH0KIH0KIApAQCAtMTM0MCw3ICsxMzQwLDcg
QEAgdm9pZCBJbmxpbmVGbG93Qm94OjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYKICAgICAvLyBUaGUgc2ltcGxlIGNhc2UgaXMgd2hl
cmUgd2UgZWl0aGVyIGhhdmUgbm8gYm9yZGVyIGltYWdlIG9yIHdlIGFyZSB0aGUgb25seSBib3gg
Zm9yIHRoaXMgb2JqZWN0LiBJbiB0aG9zZQogICAgIC8vIGNhc2VzIG9ubHkgYSBzaW5nbGUgY2Fs
bCB0byBkcmF3IGlzIHJlcXVpcmVkLgogICAgIGlmICghaGFzQm9yZGVySW1hZ2UgfHwgKCFwcmV2
TGluZUJveCgpICYmICFuZXh0TGluZUJveCgpKSkKLSAgICAgICAgcmVuZGVyZXIoKS5wYWludEJv
cmRlcihwYWludEluZm8sIHBhaW50UmVjdCwgJmxpbmVTdHlsZSwgQmFja2dyb3VuZEJsZWVkTm9u
ZSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSgpLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSgpKTsK
KyAgICAgICAgcmVuZGVyZXIoKS5wYWludEJvcmRlcihwYWludEluZm8sIHBhaW50UmVjdCwgbGlu
ZVN0eWxlLCBCYWNrZ3JvdW5kQmxlZWROb25lLCBpbmNsdWRlTG9naWNhbExlZnRFZGdlKCksIGlu
Y2x1ZGVMb2dpY2FsUmlnaHRFZGdlKCkpOwogICAgIGVsc2UgewogICAgICAgICAvLyBXZSBoYXZl
IGEgYm9yZGVyIGltYWdlIHRoYXQgc3BhbnMgbXVsdGlwbGUgbGluZXMuCiAgICAgICAgIC8vIFdl
IG5lZWQgdG8gYWRqdXN0IHR4IGFuZCB0eSBieSB0aGUgd2lkdGggb2YgYWxsIHByZXZpb3VzIGxp
bmVzLgpAQCAtMTM2NCw3ICsxMzY0LDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjpwYWludEJveERl
Y29yYXRpb25zKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYKICAgICAg
ICAgTGF5b3V0UmVjdCBjbGlwUmVjdCA9IGNsaXBSZWN0Rm9yTmluZVBpZWNlSW1hZ2VTdHJpcCh0
aGlzLCBib3JkZXJJbWFnZSwgcGFpbnRSZWN0KTsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3Rh
dGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKICAgICAgICAgY29udGV4dC0+Y2xpcChjbGlw
UmVjdCk7Ci0gICAgICAgIHJlbmRlcmVyKCkucGFpbnRCb3JkZXIocGFpbnRJbmZvLCBMYXlvdXRS
ZWN0KHN0cmlwWCwgc3RyaXBZLCBzdHJpcFdpZHRoLCBzdHJpcEhlaWdodCksICZsaW5lU3R5bGUp
OworICAgICAgICByZW5kZXJlcigpLnBhaW50Qm9yZGVyKHBhaW50SW5mbywgTGF5b3V0UmVjdChz
dHJpcFgsIHN0cmlwWSwgc3RyaXBXaWR0aCwgc3RyaXBIZWlnaHQpLCBsaW5lU3R5bGUpOwogICAg
IH0KIH0KIApAQCAtMTQxNiw3ICsxNDE2LDcgQEAgdm9pZCBJbmxpbmVGbG93Qm94OjpwYWludE1h
c2soUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnMKICAg
ICAvLyBUaGUgc2ltcGxlIGNhc2UgaXMgd2hlcmUgd2UgYXJlIHRoZSBvbmx5IGJveCBmb3IgdGhp
cyBvYmplY3QuICBJbiB0aG9zZQogICAgIC8vIGNhc2VzIG9ubHkgYSBzaW5nbGUgY2FsbCB0byBk
cmF3IGlzIHJlcXVpcmVkLgogICAgIGlmICghcHJldkxpbmVCb3goKSAmJiAhbmV4dExpbmVCb3go
KSkgewotICAgICAgICByZW5kZXJlcigpLnBhaW50TmluZVBpZWNlSW1hZ2UocGFpbnRJbmZvLmNv
bnRleHQsIExheW91dFJlY3QoYWRqdXN0ZWRQYWludE9mZnNldCwgZnJhbWVSZWN0LnNpemUoKSks
ICZyZW5kZXJlcigpLnN0eWxlKCksIG1hc2tOaW5lUGllY2VJbWFnZSwgY29tcG9zaXRlT3ApOwor
ICAgICAgICByZW5kZXJlcigpLnBhaW50TmluZVBpZWNlSW1hZ2UocGFpbnRJbmZvLmNvbnRleHQs
IExheW91dFJlY3QoYWRqdXN0ZWRQYWludE9mZnNldCwgZnJhbWVSZWN0LnNpemUoKSksIHJlbmRl
cmVyKCkuc3R5bGUoKSwgbWFza05pbmVQaWVjZUltYWdlLCBjb21wb3NpdGVPcCk7CiAgICAgfSBl
bHNlIHsKICAgICAgICAgLy8gV2UgaGF2ZSBhIG1hc2sgaW1hZ2UgdGhhdCBzcGFucyBtdWx0aXBs
ZSBsaW5lcy4KICAgICAgICAgLy8gV2UgbmVlZCB0byBhZGp1c3QgX3R4IGFuZCBfdHkgYnkgdGhl
IHdpZHRoIG9mIGFsbCBwcmV2aW91cyBsaW5lcy4KQEAgLTE0MzQsNyArMTQzNCw3IEBAIHZvaWQg
SW5saW5lRmxvd0JveDo6cGFpbnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZmZzCiAgICAgICAgIExheW91dFJlY3QgY2xpcFJlY3QgPSBjbGlwUmVj
dEZvck5pbmVQaWVjZUltYWdlU3RyaXAodGhpcywgbWFza05pbmVQaWVjZUltYWdlLCBwYWludFJl
Y3QpOwogICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKnBhaW50
SW5mby5jb250ZXh0KTsKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmNsaXAoY2xpcFJlY3Qp
OwotICAgICAgICByZW5kZXJlcigpLnBhaW50TmluZVBpZWNlSW1hZ2UocGFpbnRJbmZvLmNvbnRl
eHQsIExheW91dFJlY3Qoc3RyaXBYLCBzdHJpcFksIHN0cmlwV2lkdGgsIHN0cmlwSGVpZ2h0KSwg
JnJlbmRlcmVyKCkuc3R5bGUoKSwgbWFza05pbmVQaWVjZUltYWdlLCBjb21wb3NpdGVPcCk7Cisg
ICAgICAgIHJlbmRlcmVyKCkucGFpbnROaW5lUGllY2VJbWFnZShwYWludEluZm8uY29udGV4dCwg
TGF5b3V0UmVjdChzdHJpcFgsIHN0cmlwWSwgc3RyaXBXaWR0aCwgc3RyaXBIZWlnaHQpLCByZW5k
ZXJlcigpLnN0eWxlKCksIG1hc2tOaW5lUGllY2VJbWFnZSwgY29tcG9zaXRlT3ApOwogICAgIH0K
ICAgICAKICAgICBpZiAocHVzaFRyYW5zcGFyZW5jeUxheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAppbmRleCBkMGMyOTAwMTc0MTBlOTgwYjgzZTc0NWI4MWU2MWU5MDYy
NDgwMTBjLi4yMjU0NTg1MGU0ZjkzM2U5NmI0OTA5NjAwMmUyY2FhOGFmOWFiN2NlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTIwNSw3ICsxMjA1LDcgQEAgdm9p
ZCBSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IExheW91dFBvaW50JiBwYWkKICAgICAvLyBGSVhNRTogU2hvdWxkIGV2ZW50dWFsbHkgZ2l2
ZSB0aGUgdGhlbWUgY29udHJvbCBvdmVyIHdoZXRoZXIgdGhlIGJveCBzaGFkb3cgc2hvdWxkIHBh
aW50LCBzaW5jZSBjb250cm9scyBjb3VsZCBoYXZlCiAgICAgLy8gY3VzdG9tIHNoYWRvd3Mgb2Yg
dGhlaXIgb3duLgogICAgIGlmICghYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5k
KGJsZWVkQXZvaWRhbmNlKSkKLSAgICAgICAgcGFpbnRCb3hTaGFkb3cocGFpbnRJbmZvLCBwYWlu
dFJlY3QsICZzdHlsZSgpLCBOb3JtYWwpOworICAgICAgICBwYWludEJveFNoYWRvdyhwYWludElu
Zm8sIHBhaW50UmVjdCwgc3R5bGUoKSwgTm9ybWFsKTsKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0
YXRlU2F2ZXIgc3RhdGVTYXZlcigqcGFpbnRJbmZvLmNvbnRleHQsIGZhbHNlKTsKICAgICBpZiAo
YmxlZWRBdm9pZGFuY2UgPT0gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIpIHsK
QEAgLTEyMjQsMTggKzEyMjQsMTggQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50Qm94RGVjb3JhdGlv
bnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWkKICAgICBib29s
IHRoZW1lUGFpbnRlZCA9IHN0eWxlKCkuaGFzQXBwZWFyYW5jZSgpICYmICF0aGVtZSgpLnBhaW50
KHRoaXMsIHBhaW50SW5mbywgc25hcHBlZFBhaW50UmVjdCk7CiAgICAgaWYgKCF0aGVtZVBhaW50
ZWQpIHsKICAgICAgICAgaWYgKGJsZWVkQXZvaWRhbmNlID09IEJhY2tncm91bmRCbGVlZEJhY2tn
cm91bmRPdmVyQm9yZGVyKQotICAgICAgICAgICAgcGFpbnRCb3JkZXIocGFpbnRJbmZvLCBwYWlu
dFJlY3QsICZzdHlsZSgpLCBibGVlZEF2b2lkYW5jZSk7CisgICAgICAgICAgICBwYWludEJvcmRl
cihwYWludEluZm8sIHBhaW50UmVjdCwgc3R5bGUoKSwgYmxlZWRBdm9pZGFuY2UpOwogCiAgICAg
ICAgIHBhaW50QmFja2dyb3VuZChwYWludEluZm8sIHBhaW50UmVjdCwgYmxlZWRBdm9pZGFuY2Up
OwogCiAgICAgICAgIGlmIChzdHlsZSgpLmhhc0FwcGVhcmFuY2UoKSkKICAgICAgICAgICAgIHRo
ZW1lKCkucGFpbnREZWNvcmF0aW9ucyh0aGlzLCBwYWludEluZm8sIHNuYXBwZWRQYWludFJlY3Qp
OwogICAgIH0KLSAgICBwYWludEJveFNoYWRvdyhwYWludEluZm8sIHBhaW50UmVjdCwgJnN0eWxl
KCksIEluc2V0KTsKKyAgICBwYWludEJveFNoYWRvdyhwYWludEluZm8sIHBhaW50UmVjdCwgc3R5
bGUoKSwgSW5zZXQpOwogCiAgICAgLy8gVGhlIHRoZW1lIHdpbGwgdGVsbCB1cyB3aGV0aGVyIG9y
IG5vdCB3ZSBzaG91bGQgYWxzbyBwYWludCB0aGUgQ1NTIGJvcmRlci4KICAgICBpZiAoYmxlZWRB
dm9pZGFuY2UgIT0gQmFja2dyb3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXIgJiYgKCFzdHls
ZSgpLmhhc0FwcGVhcmFuY2UoKSB8fCAoIXRoZW1lUGFpbnRlZCAmJiB0aGVtZSgpLnBhaW50Qm9y
ZGVyT25seSh0aGlzLCBwYWludEluZm8sIHNuYXBwZWRQYWludFJlY3QpKSkgJiYgc3R5bGUoKS5o
YXNCb3JkZXIoKSkKLSAgICAgICAgcGFpbnRCb3JkZXIocGFpbnRJbmZvLCBwYWludFJlY3QsICZz
dHlsZSgpLCBibGVlZEF2b2lkYW5jZSk7CisgICAgICAgIHBhaW50Qm9yZGVyKHBhaW50SW5mbywg
cGFpbnRSZWN0LCBzdHlsZSgpLCBibGVlZEF2b2lkYW5jZSk7CiAKICAgICBpZiAoYmxlZWRBdm9p
ZGFuY2UgPT0gQmFja2dyb3VuZEJsZWVkVXNlVHJhbnNwYXJlbmN5TGF5ZXIpCiAgICAgICAgIHBh
aW50SW5mby5jb250ZXh0LT5lbmRUcmFuc3BhcmVuY3lMYXllcigpOwpAQCAtMTQ1MCw3ICsxNDUw
LDcgQEAgdm9pZCBSZW5kZXJCb3g6OnBhaW50TWFza0ltYWdlcyhjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgTGF5b3V0UmVjdCYgcGEKIAogICAgIGlmIChhbGxNYXNrSW1hZ2VzTG9h
ZGVkKSB7CiAgICAgICAgIHBhaW50RmlsbExheWVycyhwYWludEluZm8sIENvbG9yKCksIHN0eWxl
KCkubWFza0xheWVycygpLCBwYWludFJlY3QsIEJhY2tncm91bmRCbGVlZE5vbmUsIGNvbXBvc2l0
ZU9wKTsKLSAgICAgICAgcGFpbnROaW5lUGllY2VJbWFnZShwYWludEluZm8uY29udGV4dCwgcGFp
bnRSZWN0LCAmc3R5bGUoKSwgc3R5bGUoKS5tYXNrQm94SW1hZ2UoKSwgY29tcG9zaXRlT3ApOwor
ICAgICAgICBwYWludE5pbmVQaWVjZUltYWdlKHBhaW50SW5mby5jb250ZXh0LCBwYWludFJlY3Qs
IHN0eWxlKCksIHN0eWxlKCkubWFza0JveEltYWdlKCksIGNvbXBvc2l0ZU9wKTsKICAgICB9CiAg
ICAgCiAgICAgaWYgKHB1c2hUcmFuc3BhcmVuY3lMYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDg4M2ViYWQwZmJmNjM5
NGRmMTQzMDE2NWJmNzFjMTgxYzg0N2MxODYuLjA4Y2RkODViYzE1ZDg4NGE4YzY0YWFkNWVkYWQy
NzM0YzVlOGMzYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmNwcApAQCAtMTIzMiw3ICsxMjMyLDcgQEAgc3RhdGljIExheW91dFVuaXQg
Y29tcHV0ZUJvcmRlckltYWdlU2lkZShMZW5ndGggYm9yZGVyU2xpY2UsIExheW91dFVuaXQgYm9y
ZGVyU2kKICAgICByZXR1cm4gdmFsdWVGb3JMZW5ndGgoYm9yZGVyU2xpY2UsIGJveEV4dGVudCwg
cmVuZGVyVmlldyk7CiB9CiAKLWJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TmluZVBp
ZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNvbnN0IExheW91dFJl
Y3QmIHJlY3QsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwKK2Jvb2wgUmVuZGVyQm94TW9kZWxP
YmplY3Q6OnBhaW50TmluZVBpZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRl
eHQsIGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTmluZVBp
ZWNlSW1hZ2UmIG5pbmVQaWVjZUltYWdlLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKIHsKICAgICBT
dHlsZUltYWdlKiBzdHlsZUltYWdlID0gbmluZVBpZWNlSW1hZ2UuaW1hZ2UoKTsKQEAgLTEyNDIs
MTkgKzEyNDIsMTkgQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJ
bWFnZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwKICAgICBpZiAoIXN0eWxlSW1h
Z2UtPmlzTG9hZGVkKCkpCiAgICAgICAgIHJldHVybiB0cnVlOyAvLyBOZXZlciBwYWludCBhIG5p
bmUtcGllY2UgaW1hZ2UgaW5jcmVtZW50YWxseSwgYnV0IGRvbid0IHBhaW50IHRoZSBmYWxsYmFj
ayBib3JkZXJzIGVpdGhlci4KIAotICAgIGlmICghc3R5bGVJbWFnZS0+Y2FuUmVuZGVyKHRoaXMs
IHN0eWxlLT5lZmZlY3RpdmVab29tKCkpKQorICAgIGlmICghc3R5bGVJbWFnZS0+Y2FuUmVuZGVy
KHRoaXMsIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIC8vIEZJWE1FOiBib3JkZXItaW1hZ2UgaXMgYnJva2VuIHdpdGggZnVsbCBwYWdlIHpvb21p
bmcgd2hlbiB0aWxpbmcgaGFzIHRvIGhhcHBlbiwgc2luY2UgdGhlIHRpbGluZyBmdW5jdGlvbgog
ICAgIC8vIGRvZXNuJ3QgaGF2ZSBhbnkgdW5kZXJzdGFuZGluZyBvZiB0aGUgem9vbSB0aGF0IGlz
IGluIGVmZmVjdCBvbiB0aGUgdGlsZS4KICAgICBMYXlvdXRSZWN0IHJlY3RXaXRoT3V0c2V0cyA9
IHJlY3Q7Ci0gICAgcmVjdFdpdGhPdXRzZXRzLmV4cGFuZChzdHlsZS0+aW1hZ2VPdXRzZXRzKG5p
bmVQaWVjZUltYWdlKSk7CisgICAgcmVjdFdpdGhPdXRzZXRzLmV4cGFuZChzdHlsZS5pbWFnZU91
dHNldHMobmluZVBpZWNlSW1hZ2UpKTsKICAgICBJbnRSZWN0IGJvcmRlckltYWdlUmVjdCA9IHBp
eGVsU25hcHBlZEludFJlY3QocmVjdFdpdGhPdXRzZXRzKTsKIAogICAgIEludFNpemUgaW1hZ2VT
aXplID0gY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKHN0eWxlSW1hZ2UsIGJvcmRl
ckltYWdlUmVjdC5zaXplKCksIERvTm90U2NhbGVCeUVmZmVjdGl2ZVpvb20pOwogCiAgICAgLy8g
SWYgYm90aCB2YWx1ZXMgYXJlIOKAmGF1dG/igJkgdGhlbiB0aGUgaW50cmluc2ljIHdpZHRoIGFu
ZC9vciBoZWlnaHQgb2YgdGhlIGltYWdlIHNob3VsZCBiZSB1c2VkLCBpZiBhbnkuCi0gICAgc3R5
bGVJbWFnZS0+c2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKHRoaXMsIGltYWdlU2l6ZSwgc3R5
bGUtPmVmZmVjdGl2ZVpvb20oKSk7CisgICAgc3R5bGVJbWFnZS0+c2V0Q29udGFpbmVyU2l6ZUZv
clJlbmRlcmVyKHRoaXMsIGltYWdlU2l6ZSwgc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKIAogICAg
IGludCBpbWFnZVdpZHRoID0gaW1hZ2VTaXplLndpZHRoKCk7CiAgICAgaW50IGltYWdlSGVpZ2h0
ID0gaW1hZ2VTaXplLmhlaWdodCgpOwpAQCAtMTI2OSwxMCArMTI2OSwxMCBAQCBib29sIFJlbmRl
ckJveE1vZGVsT2JqZWN0OjpwYWludE5pbmVQaWVjZUltYWdlKEdyYXBoaWNzQ29udGV4dCogZ3Jh
cGhpY3NDb250ZXh0LAogICAgIEVOaW5lUGllY2VJbWFnZVJ1bGUgaFJ1bGUgPSBuaW5lUGllY2VJ
bWFnZS5ob3Jpem9udGFsUnVsZSgpOwogICAgIEVOaW5lUGllY2VJbWFnZVJ1bGUgdlJ1bGUgPSBu
aW5lUGllY2VJbWFnZS52ZXJ0aWNhbFJ1bGUoKTsKIAotICAgIGludCB0b3BXaWR0aCA9IGNvbXB1
dGVCb3JkZXJJbWFnZVNpZGUobmluZVBpZWNlSW1hZ2UuYm9yZGVyU2xpY2VzKCkudG9wKCksIHN0
eWxlLT5ib3JkZXJUb3BXaWR0aCgpLCB0b3BTbGljZSwgYm9yZGVySW1hZ2VSZWN0LmhlaWdodCgp
LCByZW5kZXJWaWV3KTsKLSAgICBpbnQgcmlnaHRXaWR0aCA9IGNvbXB1dGVCb3JkZXJJbWFnZVNp
ZGUobmluZVBpZWNlSW1hZ2UuYm9yZGVyU2xpY2VzKCkucmlnaHQoKSwgc3R5bGUtPmJvcmRlclJp
Z2h0V2lkdGgoKSwgcmlnaHRTbGljZSwgYm9yZGVySW1hZ2VSZWN0LndpZHRoKCksIHJlbmRlclZp
ZXcpOwotICAgIGludCBib3R0b21XaWR0aCA9IGNvbXB1dGVCb3JkZXJJbWFnZVNpZGUobmluZVBp
ZWNlSW1hZ2UuYm9yZGVyU2xpY2VzKCkuYm90dG9tKCksIHN0eWxlLT5ib3JkZXJCb3R0b21XaWR0
aCgpLCBib3R0b21TbGljZSwgYm9yZGVySW1hZ2VSZWN0LmhlaWdodCgpLCByZW5kZXJWaWV3KTsK
LSAgICBpbnQgbGVmdFdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdlU2lkZShuaW5lUGllY2VJbWFn
ZS5ib3JkZXJTbGljZXMoKS5sZWZ0KCksIHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSwgbGVmdFNs
aWNlLCBib3JkZXJJbWFnZVJlY3Qud2lkdGgoKSwgcmVuZGVyVmlldyk7CisgICAgaW50IHRvcFdp
ZHRoID0gY29tcHV0ZUJvcmRlckltYWdlU2lkZShuaW5lUGllY2VJbWFnZS5ib3JkZXJTbGljZXMo
KS50b3AoKSwgc3R5bGUuYm9yZGVyVG9wV2lkdGgoKSwgdG9wU2xpY2UsIGJvcmRlckltYWdlUmVj
dC5oZWlnaHQoKSwgcmVuZGVyVmlldyk7CisgICAgaW50IHJpZ2h0V2lkdGggPSBjb21wdXRlQm9y
ZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLnJpZ2h0KCksIHN0eWxl
LmJvcmRlclJpZ2h0V2lkdGgoKSwgcmlnaHRTbGljZSwgYm9yZGVySW1hZ2VSZWN0LndpZHRoKCks
IHJlbmRlclZpZXcpOworICAgIGludCBib3R0b21XaWR0aCA9IGNvbXB1dGVCb3JkZXJJbWFnZVNp
ZGUobmluZVBpZWNlSW1hZ2UuYm9yZGVyU2xpY2VzKCkuYm90dG9tKCksIHN0eWxlLmJvcmRlckJv
dHRvbVdpZHRoKCksIGJvdHRvbVNsaWNlLCBib3JkZXJJbWFnZVJlY3QuaGVpZ2h0KCksIHJlbmRl
clZpZXcpOworICAgIGludCBsZWZ0V2lkdGggPSBjb21wdXRlQm9yZGVySW1hZ2VTaWRlKG5pbmVQ
aWVjZUltYWdlLmJvcmRlclNsaWNlcygpLmxlZnQoKSwgc3R5bGUuYm9yZGVyTGVmdFdpZHRoKCks
IGxlZnRTbGljZSwgYm9yZGVySW1hZ2VSZWN0LndpZHRoKCksIHJlbmRlclZpZXcpOwogICAgIAog
ICAgIC8vIFJlZHVjZSB0aGUgd2lkdGhzIGlmIHRoZXkncmUgdG9vIGxhcmdlLgogICAgIC8vIFRo
ZSBzcGVjIHNheXM6IEdpdmVuIEx3aWR0aCBhcyB0aGUgd2lkdGggb2YgdGhlIGJvcmRlciBpbWFn
ZSBhcmVhLCBMaGVpZ2h0IGFzIGl0cyBoZWlnaHQsIGFuZCBXc2lkZSBhcyB0aGUgYm9yZGVyIGlt
YWdlIHdpZHRoCkBAIC0xMjk2LDcgKzEyOTYsNyBAQCBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0
OjpwYWludE5pbmVQaWVjZUltYWdlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LAog
ICAgICAgICAgICAgICAgICAgICAgICYmIChpbWFnZUhlaWdodCAtIHRvcFNsaWNlIC0gYm90dG9t
U2xpY2UpID4gMCAmJiAoYm9yZGVySW1hZ2VSZWN0LmhlaWdodCgpIC0gdG9wV2lkdGggLSBib3R0
b21XaWR0aCkgPiAwOwogCiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IHN0eWxlSW1hZ2UtPmlt
YWdlKHRoaXMsIGltYWdlU2l6ZSk7Ci0gICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gc3R5bGUt
PmNvbG9yU3BhY2UoKTsKKyAgICBDb2xvclNwYWNlIGNvbG9yU3BhY2UgPSBzdHlsZS5jb2xvclNw
YWNlKCk7CiAgICAgCiAgICAgZmxvYXQgZGVzdGluYXRpb25XaWR0aCA9IGJvcmRlckltYWdlUmVj
dC53aWR0aCgpIC0gbGVmdFdpZHRoIC0gcmlnaHRXaWR0aDsKICAgICBmbG9hdCBkZXN0aW5hdGlv
bkhlaWdodCA9IGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSAtIHRvcFdpZHRoIC0gYm90dG9tV2lk
dGg7CkBAIC0xNjU5LDcgKzE2NTksNyBAQCBzdGF0aWMgYm9vbCBqb2luUmVxdWlyZXNNaXRyZShC
b3hTaWRlIHNpZGUsIEJveFNpZGUgYWRqYWNlbnRTaWRlLCBjb25zdCBCb3JkZXJFZAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRPbmVCb3Jk
ZXJTaWRlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBSZW5kZXJTdHls
ZSogc3R5bGUsIGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJl
Y3QmIGlubmVyQm9yZGVyLAordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRPbmVCb3Jk
ZXJTaWRlKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUsIGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJl
Y3QmIGlubmVyQm9yZGVyLAogICAgIGNvbnN0IExheW91dFJlY3QmIHNpZGVSZWN0LCBCb3hTaWRl
IHNpZGUsIEJveFNpZGUgYWRqYWNlbnRTaWRlMSwgQm94U2lkZSBhZGphY2VudFNpZGUyLCBjb25z
dCBCb3JkZXJFZGdlIGVkZ2VzW10sIGNvbnN0IFBhdGgqIHBhdGgsCiAgICAgQmFja2dyb3VuZEJs
ZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2Us
IGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzLCBjb25zdCBDb2xv
ciogb3ZlcnJpZGVDb2xvcikKIHsKQEAgLTE3MjMsNyArMTcyMyw3IEBAIHN0YXRpYyBMYXlvdXRS
ZWN0IGNhbGN1bGF0ZVNpZGVSZWN0KGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29u
c3QgQm9yZGVyCiAgICAgcmV0dXJuIHNpZGVSZWN0OwogfQogCi12b2lkIFJlbmRlckJveE1vZGVs
T2JqZWN0OjpwYWludEJvcmRlclNpZGVzKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0
LCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRl
ciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLAordm9pZCBSZW5kZXJCb3hNb2RlbE9i
amVjdDo6cGFpbnRCb3JkZXJTaWRlcyhHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSb3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIs
IGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwKICAgICBjb25zdCBJbnRQb2ludCYgaW5u
ZXJCb3JkZXJBZGp1c3RtZW50LCBjb25zdCBCb3JkZXJFZGdlIGVkZ2VzW10sIEJvcmRlckVkZ2VG
bGFncyBlZGdlU2V0LCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsCiAg
ICAgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRF
ZGdlLCBib29sIGFudGlhbGlhcywgY29uc3QgQ29sb3IqIG92ZXJyaWRlQ29sb3IpCiB7CkBAIC0x
NzcxLDcgKzE3NzEsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlclNp
ZGVzKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjbwogICAgIH0KIH0KIAotdm9p
ZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1Y2VudEJvcmRlclNpZGVzKEdyYXBo
aWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIGNv
bnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9y
ZGVyLCBjb25zdCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1c3RtZW50LAordm9pZCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFpbnRUcmFuc2x1Y2VudEJvcmRlclNpZGVzKEdyYXBoaWNzQ29udGV4
dCogZ3JhcGhpY3NDb250ZXh0LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJvdW5k
ZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLCBjb25z
dCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1c3RtZW50LAogICAgIGNvbnN0IEJvcmRlckVkZ2Ug
ZWRnZXNbXSwgQm9yZGVyRWRnZUZsYWdzIGVkZ2VzVG9EcmF3LCBCYWNrZ3JvdW5kQmxlZWRBdm9p
ZGFuY2UgYmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBp
bmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMpCiB7CiAgICAgLy8gd2lsbEJl
T3ZlcmRyYXduIGFzc3VtZXMgdGhhdCB3ZSBkcmF3IGluIG9yZGVyOiB0b3AsIGJvdHRvbSwgbGVm
dCwgcmlnaHQuCkBAIC0xODE0LDEyICsxODE0LDEyIEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnBhaW50VHJhbnNsdWNlbnRCb3JkZXJTaWRlcyhHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNz
CiAgICAgfQogfQogCi12b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlcihjb25z
dCBQYWludEluZm8mIGluZm8sIGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRlclN0
eWxlKiBzdHlsZSwKK3ZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKGNvbnN0
IFBhaW50SW5mbyYgaW5mbywgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFja2dy
b3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVm
dEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpCiB7CiAgICAgR3JhcGhpY3NDb250
ZXh0KiBncmFwaGljc0NvbnRleHQgPSBpbmZvLmNvbnRleHQ7CiAgICAgLy8gYm9yZGVyLWltYWdl
IGlzIG5vdCBhZmZlY3RlZCBieSBib3JkZXItcmFkaXVzLgotICAgIGlmIChwYWludE5pbmVQaWVj
ZUltYWdlKGdyYXBoaWNzQ29udGV4dCwgcmVjdCwgc3R5bGUsIHN0eWxlLT5ib3JkZXJJbWFnZSgp
KSkKKyAgICBpZiAocGFpbnROaW5lUGllY2VJbWFnZShncmFwaGljc0NvbnRleHQsIHJlY3QsIHN0
eWxlLCBzdHlsZS5ib3JkZXJJbWFnZSgpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGdy
YXBoaWNzQ29udGV4dC0+cGFpbnRpbmdEaXNhYmxlZCgpKQpAQCAtMTgyNyw4ICsxODI3LDggQEAg
dm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoY29uc3QgUGFpbnRJbmZvJiBp
bmZvLCBjb25zdCBMYXlvdXRSZWN0JgogCiAgICAgQm9yZGVyRWRnZSBlZGdlc1s0XTsKICAgICBn
ZXRCb3JkZXJFZGdlSW5mbyhlZGdlcywgc3R5bGUsIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGlu
Y2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKLSAgICBSb3VuZGVkUmVjdCBvdXRlckJvcmRlciA9IHN0
eWxlLT5nZXRSb3VuZGVkQm9yZGVyRm9yKHJlY3QsICZ2aWV3KCksIGluY2x1ZGVMb2dpY2FsTGVm
dEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKLSAgICBSb3VuZGVkUmVjdCBpbm5lckJv
cmRlciA9IHN0eWxlLT5nZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3IoYm9yZGVySW5uZXJSZWN0QWRq
dXN0ZWRGb3JCbGVlZEF2b2lkYW5jZSgqZ3JhcGhpY3NDb250ZXh0LCByZWN0LCBibGVlZEF2b2lk
YW5jZSksIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsK
KyAgICBSb3VuZGVkUmVjdCBvdXRlckJvcmRlciA9IHN0eWxlLmdldFJvdW5kZWRCb3JkZXJGb3Io
cmVjdCwgJnZpZXcoKSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdo
dEVkZ2UpOworICAgIFJvdW5kZWRSZWN0IGlubmVyQm9yZGVyID0gc3R5bGUuZ2V0Um91bmRlZElu
bmVyQm9yZGVyRm9yKGJvcmRlcklubmVyUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoKmdy
YXBoaWNzQ29udGV4dCwgcmVjdCwgYmxlZWRBdm9pZGFuY2UpLCBpbmNsdWRlTG9naWNhbExlZnRF
ZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiAKICAgICBib29sIGhhdmVBbHBoYUNvbG9y
ID0gZmFsc2U7CiAgICAgYm9vbCBoYXZlQWxsU29saWRFZGdlcyA9IHRydWU7CkBAIC0xOTM1LDcg
KzE5MzUsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlcihjb25zdCBQ
YWludEluZm8mIGluZm8sIGNvbnN0IExheW91dFJlY3QmCiAgICAgICAgICAgICAgICAgcGF0aC5h
ZGRSZWN0KHNuYXBwZWRJbm5lckJvcmRlci5yZWN0KCkpOwogICAgICAgICAgICAgCiAgICAgICAg
ICAgICBncmFwaGljc0NvbnRleHQtPnNldEZpbGxSdWxlKFJVTEVfRVZFTk9ERCk7Ci0gICAgICAg
ICAgICBncmFwaGljc0NvbnRleHQtPnNldEZpbGxDb2xvcihlZGdlc1tmaXJzdFZpc2libGVFZGdl
XS5jb2xvciwgc3R5bGUtPmNvbG9yU3BhY2UoKSk7CisgICAgICAgICAgICBncmFwaGljc0NvbnRl
eHQtPnNldEZpbGxDb2xvcihlZGdlc1tmaXJzdFZpc2libGVFZGdlXS5jb2xvciwgc3R5bGUuY29s
b3JTcGFjZSgpKTsKICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZmlsbFBhdGgocGF0aCk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0gCkBAIC0xOTUyLDcgKzE5NTIsNyBAQCB2
b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJvcmRlcihjb25zdCBQYWludEluZm8mIGlu
Zm8sIGNvbnN0IExheW91dFJlY3QmCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGdyYXBo
aWNzQ29udGV4dC0+c2V0RmlsbFJ1bGUoUlVMRV9OT05aRVJPKTsKLSAgICAgICAgICAgIGdyYXBo
aWNzQ29udGV4dC0+c2V0RmlsbENvbG9yKGVkZ2VzW2ZpcnN0VmlzaWJsZUVkZ2VdLmNvbG9yLCBz
dHlsZS0+Y29sb3JTcGFjZSgpKTsKKyAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0Rmls
bENvbG9yKGVkZ2VzW2ZpcnN0VmlzaWJsZUVkZ2VdLmNvbG9yLCBzdHlsZS5jb2xvclNwYWNlKCkp
OwogICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5maWxsUGF0aChwYXRoKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMTk3Miw3ICsxOTcyLDcgQEAgdm9pZCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFpbnRCb3JkZXIoY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25zdCBM
YXlvdXRSZWN0JgogCiAgICAgLy8gSWYgb25seSBvbmUgZWRnZSB2aXNpYmxlIGFudGlhbGlhc2lu
ZyBkb2Vzbid0IGNyZWF0ZSBzZWFtcwogICAgIGJvb2wgYW50aWFsaWFzID0gc2hvdWxkQW50aWFs
aWFzTGluZXMoZ3JhcGhpY3NDb250ZXh0KSB8fCBudW1FZGdlc1Zpc2libGUgPT0gMTsKLSAgICBS
b3VuZGVkUmVjdCB1bmFkanVzdGVkSW5uZXJCb3JkZXIgPSAoYmxlZWRBdm9pZGFuY2UgPT0gQmFj
a2dyb3VuZEJsZWVkQmFja2dyb3VuZE92ZXJCb3JkZXIpID8gc3R5bGUtPmdldFJvdW5kZWRJbm5l
ckJvcmRlckZvcihyZWN0LCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJp
Z2h0RWRnZSkgOiBpbm5lckJvcmRlcjsKKyAgICBSb3VuZGVkUmVjdCB1bmFkanVzdGVkSW5uZXJC
b3JkZXIgPSAoYmxlZWRBdm9pZGFuY2UgPT0gQmFja2dyb3VuZEJsZWVkQmFja2dyb3VuZE92ZXJC
b3JkZXIpID8gc3R5bGUuZ2V0Um91bmRlZElubmVyQm9yZGVyRm9yKHJlY3QsIGluY2x1ZGVMb2dp
Y2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKSA6IGlubmVyQm9yZGVyOwogICAg
IEludFBvaW50IGlubmVyQm9yZGVyQWRqdXN0bWVudChpbm5lckJvcmRlci5yZWN0KCkueCgpIC0g
dW5hZGp1c3RlZElubmVyQm9yZGVyLnJlY3QoKS54KCksIGlubmVyQm9yZGVyLnJlY3QoKS55KCkg
LSB1bmFkanVzdGVkSW5uZXJCb3JkZXIucmVjdCgpLnkoKSk7CiAgICAgaWYgKGhhdmVBbHBoYUNv
bG9yKQogICAgICAgICBwYWludFRyYW5zbHVjZW50Qm9yZGVyU2lkZXMoZ3JhcGhpY3NDb250ZXh0
LCBzdHlsZSwgb3V0ZXJCb3JkZXIsIHVuYWRqdXN0ZWRJbm5lckJvcmRlciwgaW5uZXJCb3JkZXJB
ZGp1c3RtZW50LCBlZGdlcywgZWRnZXNUb0RyYXcsIGJsZWVkQXZvaWRhbmNlLCBpbmNsdWRlTG9n
aWNhbExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYW50aWFsaWFzKTsKQEAgLTE5
ODEsOCArMTk4MSw4IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm9yZGVyKGNv
bnN0IFBhaW50SW5mbyYgaW5mbywgY29uc3QgTGF5b3V0UmVjdCYKIH0KIAogdm9pZCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6ZHJhd0JveFNpZGVGcm9tUGF0aChHcmFwaGljc0NvbnRleHQqIGdyYXBo
aWNzQ29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgYm9yZGVyUmVjdCwgY29uc3QgUGF0aCYgYm9y
ZGVyUGF0aCwgY29uc3QgQm9yZGVyRWRnZSBlZGdlc1tdLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmxvYXQgdGhpY2tuZXNzLCBmbG9hdCBkcmF3VGhpY2tuZXNzLCBCb3hT
aWRlIHNpZGUsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBDb2xvciBjb2xvciwgRUJvcmRlclN0eWxlIGJvcmRlclN0eWxlLCBC
YWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2lj
YWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkKKyAgICBmbG9hdCB0aGlj
a25lc3MsIGZsb2F0IGRyYXdUaGlja25lc3MsIEJveFNpZGUgc2lkZSwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBDb2xvciBjb2xvciwgRUJvcmRlclN0eWxlIGJvcmRlclN0eWxlLCBCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UgYmxlZWRBdm9pZGFuY2UsCisgICAgYm9vbCBpbmNsdWRlTG9naWNh
bExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKQogewogICAgIGlmICh0aGlj
a25lc3MgPD0gMCkKICAgICAgICAgcmV0dXJuOwpAQCAtMTk5Niw3ICsxOTk2LDcgQEAgdm9pZCBS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6ZHJhd0JveFNpZGVGcm9tUGF0aChHcmFwaGljc0NvbnRleHQq
IGdyYXBoaWNzQ29udGV4dCwKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRE9UVEVEOgogICAg
IGNhc2UgREFTSEVEOiB7Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC0+c2V0U3Ryb2tlQ29sb3Io
Y29sb3IsIHN0eWxlLT5jb2xvclNwYWNlKCkpOworICAgICAgICBncmFwaGljc0NvbnRleHQtPnNl
dFN0cm9rZUNvbG9yKGNvbG9yLCBzdHlsZS5jb2xvclNwYWNlKCkpOwogCiAgICAgICAgIC8vIFRo
ZSBzdHJva2UgaXMgZG91YmxlZCBoZXJlIGJlY2F1c2UgdGhlIHByb3ZpZGVkIHBhdGggaXMgdGhl
IAogICAgICAgICAvLyBvdXRzaWRlIGVkZ2Ugb2YgdGhlIGJvcmRlciBzbyBoYWxmIHRoZSBzdHJv
a2UgaXMgY2xpcHBlZCBvZmYuIApAQCAtMjA1Niw3ICsyMDU2LDcgQEAgdm9pZCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6ZHJhd0JveFNpZGVGcm9tUGF0aChHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNz
Q29udGV4dCwKICAgICAgICAgLy8gRHJhdyBpbm5lciBib3JkZXIgbGluZQogICAgICAgICB7CiAg
ICAgICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmdyYXBoaWNz
Q29udGV4dCk7Ci0gICAgICAgICAgICBSb3VuZGVkUmVjdCBpbm5lckNsaXAgPSBzdHlsZS0+Z2V0
Um91bmRlZElubmVyQm9yZGVyRm9yKGJvcmRlclJlY3QsCisgICAgICAgICAgICBSb3VuZGVkUmVj
dCBpbm5lckNsaXAgPSBzdHlsZS5nZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3IoYm9yZGVyUmVjdCwK
ICAgICAgICAgICAgICAgICBpbm5lckJvcmRlclRvcFdpZHRoLCBpbm5lckJvcmRlckJvdHRvbVdp
ZHRoLCBpbm5lckJvcmRlckxlZnRXaWR0aCwgaW5uZXJCb3JkZXJSaWdodFdpZHRoLAogICAgICAg
ICAgICAgICAgIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdl
KTsKICAgICAgICAgICAgIApAQCAtMjA3Niw3ICsyMDc2LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6ZHJhd0JveFNpZGVGcm9tUGF0aChHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29u
dGV4dCwKICAgICAgICAgICAgICAgICArK291dGVyQm9yZGVyUmlnaHRXaWR0aDsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIFJvdW5kZWRSZWN0IG91dGVyQ2xp
cCA9IHN0eWxlLT5nZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3Iob3V0ZXJSZWN0LAorICAgICAgICAg
ICAgUm91bmRlZFJlY3Qgb3V0ZXJDbGlwID0gc3R5bGUuZ2V0Um91bmRlZElubmVyQm9yZGVyRm9y
KG91dGVyUmVjdCwKICAgICAgICAgICAgICAgICBvdXRlckJvcmRlclRvcFdpZHRoLCBvdXRlckJv
cmRlckJvdHRvbVdpZHRoLCBvdXRlckJvcmRlckxlZnRXaWR0aCwgb3V0ZXJCb3JkZXJSaWdodFdp
ZHRoLAogICAgICAgICAgICAgICAgIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dp
Y2FsUmlnaHRFZGdlKTsKICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+Y2xpcE91dFJvdW5k
ZWRSZWN0KEZsb2F0Um91bmRlZFJlY3Qob3V0ZXJDbGlwKSk7CkBAIC0yMTA3LDcgKzIxMDcsNyBA
QCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpkcmF3Qm94U2lkZUZyb21QYXRoKEdyYXBoaWNz
Q29udGV4dCogZ3JhcGhpY3NDb250ZXh0LAogICAgICAgICBMYXlvdXRVbml0IGxlZnRXaWR0aCA9
IGVkZ2VzW0JTTGVmdF0ud2lkdGhGb3JQYWludGluZygpIC8gMjsKICAgICAgICAgTGF5b3V0VW5p
dCByaWdodFdpZHRoID0gZWRnZXNbQlNSaWdodF0ud2lkdGhGb3JQYWludGluZygpIC8gMjsKIAot
ICAgICAgICBSb3VuZGVkUmVjdCBjbGlwUmVjdCA9IHN0eWxlLT5nZXRSb3VuZGVkSW5uZXJCb3Jk
ZXJGb3IoYm9yZGVyUmVjdCwKKyAgICAgICAgUm91bmRlZFJlY3QgY2xpcFJlY3QgPSBzdHlsZS5n
ZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3IoYm9yZGVyUmVjdCwKICAgICAgICAgICAgIHRvcFdpZHRo
LCBib3R0b21XaWR0aCwgbGVmdFdpZHRoLCByaWdodFdpZHRoLAogICAgICAgICAgICAgaW5jbHVk
ZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwogCkBAIC0yMTI4LDcg
KzIxMjgsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpkcmF3Qm94U2lkZUZyb21QYXRo
KEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LAogICAgIH0KIAogICAgIGdyYXBoaWNz
Q29udGV4dC0+c2V0U3Ryb2tlU3R5bGUoTm9TdHJva2UpOwotICAgIGdyYXBoaWNzQ29udGV4dC0+
c2V0RmlsbENvbG9yKGNvbG9yLCBzdHlsZS0+Y29sb3JTcGFjZSgpKTsKKyAgICBncmFwaGljc0Nv
bnRleHQtPnNldEZpbGxDb2xvcihjb2xvciwgc3R5bGUuY29sb3JTcGFjZSgpKTsKICAgICBncmFw
aGljc0NvbnRleHQtPmRyYXdSZWN0KHBpeGVsU25hcHBlZEZvclBhaW50aW5nKGJvcmRlclJlY3Qs
IGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOwogfQogCkBAIC0yMzYzLDM2ICsyMzYz
LDM2IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNsaXBCb3JkZXJTaWRlRm9yQ29tcGxl
eElubmVyUGF0aChHcmFwaGljc0NvbnRleHQqIGdyCiAgICAgZ3JhcGhpY3NDb250ZXh0LT5jbGlw
T3V0Um91bmRlZFJlY3QoRmxvYXRSb3VuZGVkUmVjdChjYWxjdWxhdGVBZGp1c3RlZElubmVyQm9y
ZGVyKGlubmVyQm9yZGVyLCBzaWRlKSkpOwogfQogCi12b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjpnZXRCb3JkZXJFZGdlSW5mbyhCb3JkZXJFZGdlIGVkZ2VzW10sIGNvbnN0IFJlbmRlclN0eWxl
KiBzdHlsZSwgYm9vbCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2Fs
UmlnaHRFZGdlKSBjb25zdAordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Z2V0Qm9yZGVyRWRn
ZUluZm8oQm9yZGVyRWRnZSBlZGdlc1tdLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGJvb2wg
aW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgY29u
c3QKIHsKLSAgICBib29sIGhvcml6b250YWwgPSBzdHlsZS0+aXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKTsKKyAgICBib29sIGhvcml6b250YWwgPSBzdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gZG9jdW1lbnQoKS5kZXZpY2VTY2Fs
ZUZhY3RvcigpOwogCi0gICAgZWRnZXNbQlNUb3BdID0gQm9yZGVyRWRnZShzdHlsZS0+Ym9yZGVy
VG9wV2lkdGgoKSwKLSAgICAgICAgc3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9w
ZXJ0eUJvcmRlclRvcENvbG9yKSwKLSAgICAgICAgc3R5bGUtPmJvcmRlclRvcFN0eWxlKCksCi0g
ICAgICAgIHN0eWxlLT5ib3JkZXJUb3BJc1RyYW5zcGFyZW50KCksCisgICAgZWRnZXNbQlNUb3Bd
ID0gQm9yZGVyRWRnZShzdHlsZS5ib3JkZXJUb3BXaWR0aCgpLAorICAgICAgICBzdHlsZS52aXNp
dGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCb3JkZXJUb3BDb2xvciksCisgICAgICAgIHN0
eWxlLmJvcmRlclRvcFN0eWxlKCksCisgICAgICAgIHN0eWxlLmJvcmRlclRvcElzVHJhbnNwYXJl
bnQoKSwKICAgICAgICAgaG9yaXpvbnRhbCB8fCBpbmNsdWRlTG9naWNhbExlZnRFZGdlLAogICAg
ICAgICBkZXZpY2VTY2FsZUZhY3Rvcik7CiAKLSAgICBlZGdlc1tCU1JpZ2h0XSA9IEJvcmRlckVk
Z2Uoc3R5bGUtPmJvcmRlclJpZ2h0V2lkdGgoKSwKLSAgICAgICAgc3R5bGUtPnZpc2l0ZWREZXBl
bmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0Q29sb3IpLAotICAgICAgICBzdHlsZS0+
Ym9yZGVyUmlnaHRTdHlsZSgpLAotICAgICAgICBzdHlsZS0+Ym9yZGVyUmlnaHRJc1RyYW5zcGFy
ZW50KCksCisgICAgZWRnZXNbQlNSaWdodF0gPSBCb3JkZXJFZGdlKHN0eWxlLmJvcmRlclJpZ2h0
V2lkdGgoKSwKKyAgICAgICAgc3R5bGUudmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5
Qm9yZGVyUmlnaHRDb2xvciksCisgICAgICAgIHN0eWxlLmJvcmRlclJpZ2h0U3R5bGUoKSwKKyAg
ICAgICAgc3R5bGUuYm9yZGVyUmlnaHRJc1RyYW5zcGFyZW50KCksCiAgICAgICAgICFob3Jpem9u
dGFsIHx8IGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlLAogICAgICAgICBkZXZpY2VTY2FsZUZhY3Rv
cik7CiAKLSAgICBlZGdlc1tCU0JvdHRvbV0gPSBCb3JkZXJFZGdlKHN0eWxlLT5ib3JkZXJCb3R0
b21XaWR0aCgpLAotICAgICAgICBzdHlsZS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3Bl
cnR5Qm9yZGVyQm90dG9tQ29sb3IpLAotICAgICAgICBzdHlsZS0+Ym9yZGVyQm90dG9tU3R5bGUo
KSwKLSAgICAgICAgc3R5bGUtPmJvcmRlckJvdHRvbUlzVHJhbnNwYXJlbnQoKSwKKyAgICBlZGdl
c1tCU0JvdHRvbV0gPSBCb3JkZXJFZGdlKHN0eWxlLmJvcmRlckJvdHRvbVdpZHRoKCksCisgICAg
ICAgIHN0eWxlLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJvcmRlckJvdHRvbUNv
bG9yKSwKKyAgICAgICAgc3R5bGUuYm9yZGVyQm90dG9tU3R5bGUoKSwKKyAgICAgICAgc3R5bGUu
Ym9yZGVyQm90dG9tSXNUcmFuc3BhcmVudCgpLAogICAgICAgICBob3Jpem9udGFsIHx8IGluY2x1
ZGVMb2dpY2FsUmlnaHRFZGdlLAogICAgICAgICBkZXZpY2VTY2FsZUZhY3Rvcik7CiAKLSAgICBl
ZGdlc1tCU0xlZnRdID0gQm9yZGVyRWRnZShzdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCksCi0gICAg
ICAgIHN0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29s
b3IpLAotICAgICAgICBzdHlsZS0+Ym9yZGVyTGVmdFN0eWxlKCksCi0gICAgICAgIHN0eWxlLT5i
b3JkZXJMZWZ0SXNUcmFuc3BhcmVudCgpLAorICAgIGVkZ2VzW0JTTGVmdF0gPSBCb3JkZXJFZGdl
KHN0eWxlLmJvcmRlckxlZnRXaWR0aCgpLAorICAgICAgICBzdHlsZS52aXNpdGVkRGVwZW5kZW50
Q29sb3IoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3IpLAorICAgICAgICBzdHlsZS5ib3JkZXJM
ZWZ0U3R5bGUoKSwKKyAgICAgICAgc3R5bGUuYm9yZGVyTGVmdElzVHJhbnNwYXJlbnQoKSwKICAg
ICAgICAgIWhvcml6b250YWwgfHwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwKICAgICAgICAgZGV2
aWNlU2NhbGVGYWN0b3IpOwogfQpAQCAtMjQwMCw3ICsyNDAwLDcgQEAgdm9pZCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6Z2V0Qm9yZGVyRWRnZUluZm8oQm9yZGVyRWRnZSBlZGdlc1tdLCBjb25zdCBS
ZW5kZXJTdHkKIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmJvcmRlck9ic2N1cmVzQmFja2dy
b3VuZEVkZ2UoY29uc3QgRmxvYXRTaXplJiBjb250ZXh0U2NhbGUpIGNvbnN0CiB7CiAgICAgQm9y
ZGVyRWRnZSBlZGdlc1s0XTsKLSAgICBnZXRCb3JkZXJFZGdlSW5mbyhlZGdlcywgJnN0eWxlKCkp
OworICAgIGdldEJvcmRlckVkZ2VJbmZvKGVkZ2VzLCBzdHlsZSgpKTsKIAogICAgIGZvciAoaW50
IGkgPSBCU1RvcDsgaSA8PSBCU0xlZnQ7ICsraSkgewogICAgICAgICBjb25zdCBCb3JkZXJFZGdl
JiBjdXJyRWRnZSA9IGVkZ2VzW2ldOwpAQCAtMjQyMyw3ICsyNDIzLDcgQEAgYm9vbCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6Ym9yZGVyT2JzY3VyZXNCYWNrZ3JvdW5kKCkgY29uc3QKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgQm9yZGVyRWRnZSBlZGdlc1s0XTsKLSAgICBnZXRCb3JkZXJF
ZGdlSW5mbyhlZGdlcywgJnN0eWxlKCkpOworICAgIGdldEJvcmRlckVkZ2VJbmZvKGVkZ2VzLCBz
dHlsZSgpKTsKIAogICAgIGZvciAoaW50IGkgPSBCU1RvcDsgaSA8PSBCU0xlZnQ7ICsraSkgewog
ICAgICAgICBjb25zdCBCb3JkZXJFZGdlJiBjdXJyRWRnZSA9IGVkZ2VzW2ldOwpAQCAtMjQ5NSwy
MiArMjQ5NSwyMiBAQCBzdGF0aWMgaW5saW5lIExheW91dFJlY3QgYXJlYUNhc3RpbmdTaGFkb3dJ
bkhvbGUoY29uc3QgTGF5b3V0UmVjdCYgaG9sZVJlY3QsIGludAogICAgIHJldHVybiB1bmlvblJl
Y3QoYm91bmRzLCBvZmZzZXRCb3VuZHMpOwogfQogCi12b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0
OjpwYWludEJveFNoYWRvdyhjb25zdCBQYWludEluZm8mIGluZm8sIGNvbnN0IExheW91dFJlY3Qm
IHBhaW50UmVjdCwgY29uc3QgUmVuZGVyU3R5bGUqIHMsIFNoYWRvd1N0eWxlIHNoYWRvd1N0eWxl
LCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVk
Z2UpCit2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJveFNoYWRvdyhjb25zdCBQYWlu
dEluZm8mIGluZm8sIGNvbnN0IExheW91dFJlY3QmIHBhaW50UmVjdCwgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlLCBTaGFkb3dTdHlsZSBzaGFkb3dTdHlsZSwgYm9vbCBpbmNsdWRlTG9naWNhbExl
ZnRFZGdlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKQogewogICAgIC8vIEZJWE1FOiBE
ZWFsIHdpdGggYm9yZGVyLWltYWdlLiAgV291bGQgYmUgZ3JlYXQgdG8gdXNlIGJvcmRlci1pbWFn
ZSBhcyBhIG1hc2suCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gaW5mby5jb250ZXh0
OwotICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkgfHwgIXMtPmJveFNoYWRvdygp
KQorICAgIGlmIChjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkgfHwgIXN0eWxlLmJveFNoYWRv
dygpKQogICAgICAgICByZXR1cm47CiAKICAgICBSb3VuZGVkUmVjdCBib3JkZXIgPSAoc2hhZG93
U3R5bGUgPT0gSW5zZXQpCi0gICAgICAgID8gcy0+Z2V0Um91bmRlZElubmVyQm9yZGVyRm9yKHBh
aW50UmVjdCwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2Up
Ci0gICAgICAgIDogcy0+Z2V0Um91bmRlZEJvcmRlckZvcihwYWludFJlY3QsICZ2aWV3KCksIGlu
Y2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlKTsKKyAgICAgICAg
PyBzdHlsZS5nZXRSb3VuZGVkSW5uZXJCb3JkZXJGb3IocGFpbnRSZWN0LCBpbmNsdWRlTG9naWNh
bExlZnRFZGdlLCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkKKyAgICAgICAgOiBzdHlsZS5nZXRS
b3VuZGVkQm9yZGVyRm9yKHBhaW50UmVjdCwgJnZpZXcoKSwgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRn
ZSwgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpOwogCi0gICAgYm9vbCBoYXNCb3JkZXJSYWRpdXMg
PSBzLT5oYXNCb3JkZXJSYWRpdXMoKTsKLSAgICBib29sIGlzSG9yaXpvbnRhbCA9IHMtPmlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCk7CisgICAgYm9vbCBoYXNCb3JkZXJSYWRpdXMgPSBzdHlsZS5o
YXNCb3JkZXJSYWRpdXMoKTsKKyAgICBib29sIGlzSG9yaXpvbnRhbCA9IHN0eWxlLmlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCk7CiAgICAgCi0gICAgYm9vbCBoYXNPcGFxdWVCYWNrZ3JvdW5kID0g
cy0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKS5pc1Zh
bGlkKCkgJiYgcy0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENv
bG9yKS5hbHBoYSgpID09IDI1NTsKLSAgICBmb3IgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9
IHMtPmJveFNoYWRvdygpOyBzaGFkb3c7IHNoYWRvdyA9IHNoYWRvdy0+bmV4dCgpKSB7CisgICAg
Ym9vbCBoYXNPcGFxdWVCYWNrZ3JvdW5kID0gc3R5bGUudmlzaXRlZERlcGVuZGVudENvbG9yKENT
U1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKS5pc1ZhbGlkKCkgJiYgc3R5bGUudmlzaXRlZERlcGVu
ZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKS5hbHBoYSgpID09IDI1NTsKKyAg
ICBmb3IgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN0eWxlLmJveFNoYWRvdygpOyBzaGFk
b3c7IHNoYWRvdyA9IHNoYWRvdy0+bmV4dCgpKSB7CiAgICAgICAgIGlmIChzaGFkb3ctPnN0eWxl
KCkgIT0gc2hhZG93U3R5bGUpCiAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMjU0NCw5ICsy
NTQ0LDkgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRCb3hTaGFkb3coY29uc3Qg
UGFpbnRJbmZvJiBpbmZvLCBjb25zdCBMYXlvdXRSZWMKICAgICAgICAgICAgIGZpbGxSZWN0Lm1v
dmUoZXh0cmFPZmZzZXQpOwogCiAgICAgICAgICAgICBpZiAoc2hhZG93LT5pc1dlYmtpdEJveFNo
YWRvdygpKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPnNldExlZ2FjeVNoYWRvdyhzaGFkb3dP
ZmZzZXQsIHNoYWRvd1JhZGl1cywgc2hhZG93Q29sb3IsIHMtPmNvbG9yU3BhY2UoKSk7CisgICAg
ICAgICAgICAgICAgY29udGV4dC0+c2V0TGVnYWN5U2hhZG93KHNoYWRvd09mZnNldCwgc2hhZG93
UmFkaXVzLCBzaGFkb3dDb2xvciwgc3R5bGUuY29sb3JTcGFjZSgpKTsKICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5zZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFk
b3dSYWRpdXMsIHNoYWRvd0NvbG9yLCBzLT5jb2xvclNwYWNlKCkpOworICAgICAgICAgICAgICAg
IGNvbnRleHQtPnNldFNoYWRvdyhzaGFkb3dPZmZzZXQsIHNoYWRvd1JhZGl1cywgc2hhZG93Q29s
b3IsIHN0eWxlLmNvbG9yU3BhY2UoKSk7CiAKICAgICAgICAgICAgIGlmIChoYXNCb3JkZXJSYWRp
dXMpIHsKICAgICAgICAgICAgICAgICBSb3VuZGVkUmVjdCByZWN0VG9DbGlwT3V0ID0gYm9yZGVy
OwpAQCAtMjU2NCwxMiArMjU2NCwxMiBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEJveFNoYWRvdyhjb25zdCBQYWludEluZm8mIGluZm8sIGNvbnN0IExheW91dFJlYwogICAgICAg
ICAgICAgICAgIFJvdW5kZWRSZWN0IGluZmx1ZW5jZVJlY3Qoc2hhZG93UmVjdCwgYm9yZGVyLnJh
ZGlpKCkpOwogICAgICAgICAgICAgICAgIGluZmx1ZW5jZVJlY3QuZXhwYW5kUmFkaWkoMiAqIHNo
YWRvd1BhaW50aW5nRXh0ZW50ICsgc2hhZG93U3ByZWFkKTsKICAgICAgICAgICAgICAgICBpZiAo
YWxsQ29ybmVyc0NsaXBwZWRPdXQoaW5mbHVlbmNlUmVjdCwgaW5mby5yZWN0KSkKLSAgICAgICAg
ICAgICAgICAgICAgY29udGV4dC0+ZmlsbFJlY3QoZmlsbFJlY3QucmVjdCgpLCBDb2xvcjo6Ymxh
Y2ssIHMtPmNvbG9yU3BhY2UoKSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmZpbGxS
ZWN0KGZpbGxSZWN0LnJlY3QoKSwgQ29sb3I6OmJsYWNrLCBzdHlsZS5jb2xvclNwYWNlKCkpOwog
ICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICBmaWxsUmVjdC5leHBh
bmRSYWRpaShzaGFkb3dTcHJlYWQpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWZpbGxSZWN0
LmlzUmVuZGVyYWJsZSgpKQogICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFJlY3QuYWRqdXN0
UmFkaWkoKTsKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0KEZs
b2F0Um91bmRlZFJlY3QoZmlsbFJlY3QpLCBDb2xvcjo6YmxhY2ssIHMtPmNvbG9yU3BhY2UoKSk7
CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmZpbGxSb3VuZGVkUmVjdChGbG9hdFJvdW5k
ZWRSZWN0KGZpbGxSZWN0KSwgQ29sb3I6OmJsYWNrLCBzdHlsZS5jb2xvclNwYWNlKCkpOwogICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgTGF5
b3V0UmVjdCByZWN0VG9DbGlwT3V0ID0gYm9yZGVyLnJlY3QoKTsKQEAgLTI1ODgsNyArMjU4OCw3
IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50Qm94U2hhZG93KGNvbnN0IFBhaW50
SW5mbyYgaW5mbywgY29uc3QgTGF5b3V0UmVjCiAKICAgICAgICAgICAgICAgICBpZiAoIXJlY3RU
b0NsaXBPdXQuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5jbGlwT3V0
KHJlY3RUb0NsaXBPdXQpOwotICAgICAgICAgICAgICAgIGNvbnRleHQtPmZpbGxSZWN0KGZpbGxS
ZWN0LnJlY3QoKSwgQ29sb3I6OmJsYWNrLCBzLT5jb2xvclNwYWNlKCkpOworICAgICAgICAgICAg
ICAgIGNvbnRleHQtPmZpbGxSZWN0KGZpbGxSZWN0LnJlY3QoKSwgQ29sb3I6OmJsYWNrLCBzdHls
ZS5jb2xvclNwYWNlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgLy8gSW5zZXQgc2hhZG93LgpAQCAtMjU5Nyw5ICsyNTk3LDkgQEAgdm9pZCBSZW5kZXJC
b3hNb2RlbE9iamVjdDo6cGFpbnRCb3hTaGFkb3coY29uc3QgUGFpbnRJbmZvJiBpbmZvLCBjb25z
dCBMYXlvdXRSZWMKIAogICAgICAgICAgICAgaWYgKGhvbGVSZWN0LmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgICAgIGlmIChoYXNCb3JkZXJSYWRpdXMpCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRleHQtPmZpbGxSb3VuZGVkUmVjdChGbG9hdFJvdW5kZWRSZWN0KGJvcmRlciksIHNoYWRvd0Nv
bG9yLCBzLT5jb2xvclNwYWNlKCkpOworICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5maWxs
Um91bmRlZFJlY3QoRmxvYXRSb3VuZGVkUmVjdChib3JkZXIpLCBzaGFkb3dDb2xvciwgc3R5bGUu
Y29sb3JTcGFjZSgpKTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAg
IGNvbnRleHQtPmZpbGxSZWN0KGJvcmRlci5yZWN0KCksIHNoYWRvd0NvbG9yLCBzLT5jb2xvclNw
YWNlKCkpOworICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5maWxsUmVjdChib3JkZXIucmVj
dCgpLCBzaGFkb3dDb2xvciwgc3R5bGUuY29sb3JTcGFjZSgpKTsKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgIH0KIApAQCAtMjYzOCwxMSArMjYzOCwxMSBAQCB2b2lkIFJl
bmRlckJveE1vZGVsT2JqZWN0OjpwYWludEJveFNoYWRvdyhjb25zdCBQYWludEluZm8mIGluZm8s
IGNvbnN0IExheW91dFJlYwogICAgICAgICAgICAgc2hhZG93T2Zmc2V0IC09IGV4dHJhT2Zmc2V0
OwogCiAgICAgICAgICAgICBpZiAoc2hhZG93LT5pc1dlYmtpdEJveFNoYWRvdygpKQotICAgICAg
ICAgICAgICAgIGNvbnRleHQtPnNldExlZ2FjeVNoYWRvdyhzaGFkb3dPZmZzZXQsIHNoYWRvd1Jh
ZGl1cywgc2hhZG93Q29sb3IsIHMtPmNvbG9yU3BhY2UoKSk7CisgICAgICAgICAgICAgICAgY29u
dGV4dC0+c2V0TGVnYWN5U2hhZG93KHNoYWRvd09mZnNldCwgc2hhZG93UmFkaXVzLCBzaGFkb3dD
b2xvciwgc3R5bGUuY29sb3JTcGFjZSgpKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICBjb250ZXh0LT5zZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dSYWRpdXMsIHNoYWRv
d0NvbG9yLCBzLT5jb2xvclNwYWNlKCkpOworICAgICAgICAgICAgICAgIGNvbnRleHQtPnNldFNo
YWRvdyhzaGFkb3dPZmZzZXQsIHNoYWRvd1JhZGl1cywgc2hhZG93Q29sb3IsIHN0eWxlLmNvbG9y
U3BhY2UoKSk7CiAKLSAgICAgICAgICAgIGNvbnRleHQtPmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xl
KG91dGVyUmVjdCwgRmxvYXRSb3VuZGVkUmVjdChyb3VuZGVkSG9sZSksIGZpbGxDb2xvciwgcy0+
Y29sb3JTcGFjZSgpKTsKKyAgICAgICAgICAgIGNvbnRleHQtPmZpbGxSZWN0V2l0aFJvdW5kZWRI
b2xlKG91dGVyUmVjdCwgRmxvYXRSb3VuZGVkUmVjdChyb3VuZGVkSG9sZSksIGZpbGxDb2xvciwg
c3R5bGUuY29sb3JTcGFjZSgpKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXggYWVjMzI0Y2UzNTA2
YTM3OWY5NmVkYzMxZGZiZTg5MDcyYWUzYWY5MS4uOWE5YmIxYzM0ODVhYmE0NWQxYTk5YmQ5MmQw
ODgyNTliZjMwMjgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmgKQEAgLTE2NSw5ICsxNjUsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgY2hpbGRCZWNhbWVOb25JbmxpbmUoUmVuZGVyT2JqZWN0KiAvKmNoaWxkKi8pIHsgfQog
Ci0gICAgdm9pZCBwYWludEJvcmRlcihjb25zdCBQYWludEluZm8mLCBjb25zdCBMYXlvdXRSZWN0
JiwgY29uc3QgUmVuZGVyU3R5bGUqLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UgPSBCYWNrZ3Jv
dW5kQmxlZWROb25lLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UgPSB0cnVlLCBib29sIGlu
Y2x1ZGVMb2dpY2FsUmlnaHRFZGdlID0gdHJ1ZSk7Ci0gICAgYm9vbCBwYWludE5pbmVQaWVjZUlt
YWdlKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJTdHls
ZSosIGNvbnN0IE5pbmVQaWVjZUltYWdlJiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVT
b3VyY2VPdmVyKTsKLSAgICB2b2lkIHBhaW50Qm94U2hhZG93KGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJTdHlsZSosIFNoYWRvd1N0eWxlLCBib29sIGlu
Y2x1ZGVMb2dpY2FsTGVmdEVkZ2UgPSB0cnVlLCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdl
ID0gdHJ1ZSk7CisgICAgdm9pZCBwYWludEJvcmRlcihjb25zdCBQYWludEluZm8mLCBjb25zdCBM
YXlvdXRSZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2Ug
PSBCYWNrZ3JvdW5kQmxlZWROb25lLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UgPSB0cnVl
LCBib29sIGluY2x1ZGVMb2dpY2FsUmlnaHRFZGdlID0gdHJ1ZSk7CisgICAgYm9vbCBwYWludE5p
bmVQaWVjZUltYWdlKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBS
ZW5kZXJTdHlsZSYsIGNvbnN0IE5pbmVQaWVjZUltYWdlJiwgQ29tcG9zaXRlT3BlcmF0b3IgPSBD
b21wb3NpdGVTb3VyY2VPdmVyKTsKKyAgICB2b2lkIHBhaW50Qm94U2hhZG93KGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBSZW5kZXJTdHlsZSYsIFNoYWRvd1N0eWxl
LCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UgPSB0cnVlLCBib29sIGluY2x1ZGVMb2dpY2Fs
UmlnaHRFZGdlID0gdHJ1ZSk7CiAgICAgdm9pZCBwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IENvbG9yJiwgY29uc3QgRmlsbExheWVyKiwgY29uc3QgTGF5b3V0
UmVjdCYsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgSW5saW5lRmxvd0JveCogPSAwLCBjb25z
dCBMYXlvdXRTaXplJiA9IExheW91dFNpemUoKSwgQ29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3Np
dGVTb3VyY2VPdmVyLCBSZW5kZXJFbGVtZW50KiBiYWNrZ3JvdW5kT2JqZWN0ID0gMCk7CiAKICAg
ICB2aXJ0dWFsIGJvb2wgYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3JvdW5kKEJhY2tn
cm91bmRCbGVlZEF2b2lkYW5jZSwgSW5saW5lRmxvd0JveCogPSAwKSBjb25zdDsKQEAgLTI2NCw3
ICsyNjQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgTGF5b3V0UG9pbnQgYWRqdXN0ZWRQb3NpdGlvblJl
bGF0aXZlVG9PZmZzZXRQYXJlbnQoY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKIAogICAgIHZv
aWQgY2FsY3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcGFpbnRDb250YWluZXIsIGNvbnN0IEZpbGxMYXllciosIGNvbnN0IExheW91dFJl
Y3QmIHBhaW50UmVjdCwgQmFja2dyb3VuZEltYWdlR2VvbWV0cnkmLCBSZW5kZXJFbGVtZW50KiA9
IDApIGNvbnN0OwotICAgIHZvaWQgZ2V0Qm9yZGVyRWRnZUluZm8oY2xhc3MgQm9yZGVyRWRnZVtd
LCBjb25zdCBSZW5kZXJTdHlsZSosIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSA9IHRydWUs
IGJvb2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UgPSB0cnVlKSBjb25zdDsKKyAgICB2b2lkIGdl
dEJvcmRlckVkZ2VJbmZvKGNsYXNzIEJvcmRlckVkZ2VbXSwgY29uc3QgUmVuZGVyU3R5bGUmLCBi
b29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UgPSB0cnVlLCBib29sIGluY2x1ZGVMb2dpY2FsUmln
aHRFZGdlID0gdHJ1ZSkgY29uc3Q7CiAgICAgYm9vbCBib3JkZXJPYnNjdXJlc0JhY2tncm91bmRF
ZGdlKGNvbnN0IEZsb2F0U2l6ZSYgY29udGV4dFNjYWxlKSBjb25zdDsKICAgICBib29sIGJvcmRl
ck9ic2N1cmVzQmFja2dyb3VuZCgpIGNvbnN0OwogICAgIFJvdW5kZWRSZWN0IGJhY2tncm91bmRS
b3VuZGVkUmVjdEFkanVzdGVkRm9yQmxlZWRBdm9pZGFuY2UoY29uc3QgR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgTGF5b3V0UmVjdCYsIEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSwgSW5saW5lRmxv
d0JveCosIGNvbnN0IExheW91dFNpemUmLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJv
b2wgaW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UpIGNvbnN0OwpAQCAtMzMwLDE3ICszMzAsMTcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNsaXBCb3JkZXJTaWRlUG9seWdvbihHcmFwaGljc0NvbnRleHQq
LCBjb25zdCBSb3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5l
ckJvcmRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCb3hTaWRlLCBib29sIGZp
cnN0RWRnZU1hdGNoZXMsIGJvb2wgc2Vjb25kRWRnZU1hdGNoZXMpOwogICAgIHZvaWQgY2xpcEJv
cmRlclNpZGVGb3JDb21wbGV4SW5uZXJQYXRoKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IFJvdW5k
ZWRSZWN0JiwgY29uc3QgUm91bmRlZFJlY3QmLCBCb3hTaWRlLCBjb25zdCBjbGFzcyBCb3JkZXJF
ZGdlW10pOwotICAgIHZvaWQgcGFpbnRPbmVCb3JkZXJTaWRlKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IFJlbmRlclN0eWxlKiwgY29uc3QgUm91bmRlZFJlY3QmIG91dGVyQm9yZGVyLCBjb25zdCBS
b3VuZGVkUmVjdCYgaW5uZXJCb3JkZXIsCisgICAgdm9pZCBwYWludE9uZUJvcmRlclNpZGUoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSb3VuZGVkUmVjdCYgb3V0
ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwKICAgICAgICAgY29uc3Qg
TGF5b3V0UmVjdCYgc2lkZVJlY3QsIEJveFNpZGUsIEJveFNpZGUgYWRqYWNlbnRTaWRlMSwgQm94
U2lkZSBhZGphY2VudFNpZGUyLCBjb25zdCBjbGFzcyBCb3JkZXJFZGdlW10sCiAgICAgICAgIGNv
bnN0IFBhdGgqLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxM
ZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSwgYm9vbCBhbnRpYWxpYXMsIGNv
bnN0IENvbG9yKiBvdmVycmlkZUNvbG9yID0gMCk7Ci0gICAgdm9pZCBwYWludFRyYW5zbHVjZW50
Qm9yZGVyU2lkZXMoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgUmVuZGVyU3R5bGUqLCBjb25zdCBS
b3VuZGVkUmVjdCYgb3V0ZXJCb3JkZXIsIGNvbnN0IFJvdW5kZWRSZWN0JiBpbm5lckJvcmRlciwg
Y29uc3QgSW50UG9pbnQmIGlubmVyQm9yZGVyQWRqdXN0bWVudCwKKyAgICB2b2lkIHBhaW50VHJh
bnNsdWNlbnRCb3JkZXJTaWRlcyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHlsZSYs
IGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVy
Qm9yZGVyLCBjb25zdCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1c3RtZW50LAogICAgICAgICBj
b25zdCBjbGFzcyBCb3JkZXJFZGdlW10sIEJvcmRlckVkZ2VGbGFncywgQmFja2dyb3VuZEJsZWVk
QXZvaWRhbmNlLCBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wgaW5jbHVkZUxvZ2lj
YWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzID0gZmFsc2UpOwotICAgIHZvaWQgcGFpbnRCb3Jk
ZXJTaWRlcyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IFJvdW5k
ZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlubmVyQm9yZGVyLAorICAg
IHZvaWQgcGFpbnRCb3JkZXJTaWRlcyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBSZW5kZXJTdHls
ZSYsIGNvbnN0IFJvdW5kZWRSZWN0JiBvdXRlckJvcmRlciwgY29uc3QgUm91bmRlZFJlY3QmIGlu
bmVyQm9yZGVyLAogICAgICAgICBjb25zdCBJbnRQb2ludCYgaW5uZXJCb3JkZXJBZGp1c3RtZW50
LCBjb25zdCBjbGFzcyBCb3JkZXJFZGdlW10sIEJvcmRlckVkZ2VGbGFncywgQmFja2dyb3VuZEJs
ZWVkQXZvaWRhbmNlLAogICAgICAgICBib29sIGluY2x1ZGVMb2dpY2FsTGVmdEVkZ2UsIGJvb2wg
aW5jbHVkZUxvZ2ljYWxSaWdodEVkZ2UsIGJvb2wgYW50aWFsaWFzID0gZmFsc2UsIGNvbnN0IENv
bG9yKiBvdmVycmlkZUNvbG9yID0gMCk7CiAgICAgdm9pZCBkcmF3Qm94U2lkZUZyb21QYXRoKEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmLCBjb25zdCBQYXRoJiwgY29uc3QgY2xh
c3MgQm9yZGVyRWRnZVtdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHRoaWNr
bmVzcywgZmxvYXQgZHJhd1RoaWNrbmVzcywgQm94U2lkZSwgY29uc3QgUmVuZGVyU3R5bGUqLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciwgRUJvcmRlclN0eWxlLCBCYWNrZ3Jv
dW5kQmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9vbCBpbmNs
dWRlTG9naWNhbFJpZ2h0RWRnZSk7CisgICAgICAgIGZsb2F0IHRoaWNrbmVzcywgZmxvYXQgZHJh
d1RoaWNrbmVzcywgQm94U2lkZSwgY29uc3QgUmVuZGVyU3R5bGUmLAorICAgICAgICBDb2xvciwg
RUJvcmRlclN0eWxlLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UsIGJvb2wgaW5jbHVkZUxvZ2lj
YWxMZWZ0RWRnZSwgYm9vbCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSk7CiAgICAgdm9pZCBwYWlu
dE1hc2tGb3JUZXh0RmlsbEJveChJbWFnZUJ1ZmZlciosIGNvbnN0IEludFJlY3QmLCBJbmxpbmVG
bG93Qm94KiwgY29uc3QgTGF5b3V0UmVjdCYsIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50Kik7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcAppbmRleCAy
M2RjODExNDZkMWZkOWMxOWEzYTlmMTNiNDI3YjExNjdlNDI2OWRmLi5mYzZjZjZiNzk4OWI2NmY5
NDk3N2QzOTY3Zjk2YmFiOTVjMGM3Nzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGaWVsZHNldC5jcHAKQEAgLTE2MCw5ICsxNjAsOSBAQCB2b2lkIFJlbmRlckZpZWxkc2V0
OjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQ
b2ludAogICAgIH0KIAogICAgIGlmICghYm94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3Jv
dW5kKGRldGVybWluZUJhY2tncm91bmRCbGVlZEF2b2lkYW5jZShwYWludEluZm8uY29udGV4dCkp
KQotICAgICAgICBwYWludEJveFNoYWRvdyhwYWludEluZm8sIHBhaW50UmVjdCwgJnN0eWxlKCks
IE5vcm1hbCk7CisgICAgICAgIHBhaW50Qm94U2hhZG93KHBhaW50SW5mbywgcGFpbnRSZWN0LCBz
dHlsZSgpLCBOb3JtYWwpOwogICAgIHBhaW50RmlsbExheWVycyhwYWludEluZm8sIHN0eWxlKCku
dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKSwgc3R5bGUo
KS5iYWNrZ3JvdW5kTGF5ZXJzKCksIHBhaW50UmVjdCk7Ci0gICAgcGFpbnRCb3hTaGFkb3cocGFp
bnRJbmZvLCBwYWludFJlY3QsICZzdHlsZSgpLCBJbnNldCk7CisgICAgcGFpbnRCb3hTaGFkb3co
cGFpbnRJbmZvLCBwYWludFJlY3QsIHN0eWxlKCksIEluc2V0KTsKIAogICAgIGlmICghc3R5bGUo
KS5oYXNCb3JkZXIoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQg
UmVuZGVyRmllbGRzZXQ6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91dFBvaW50CiAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+Y2xpcE91dChwaXhl
bFNuYXBwZWRJbnRSZWN0KGNsaXBMZWZ0LCBwYWludFJlY3QueSgpICsgbGVnZW5kLT55KCksIGNs
aXBXaWR0aCwgbGVnZW5kLT5oZWlnaHQoKSkpOwogICAgIH0KIAotICAgIHBhaW50Qm9yZGVyKHBh
aW50SW5mbywgcGFpbnRSZWN0LCAmc3R5bGUoKSk7CisgICAgcGFpbnRCb3JkZXIocGFpbnRJbmZv
LCBwYWludFJlY3QsIHN0eWxlKCkpOwogfQogCiB2b2lkIFJlbmRlckZpZWxkc2V0OjpwYWludE1h
c2soUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IDkzNGEzYjI4MjU1
MzBkYTZhZDM1OTI2ZjI1Y2ZmNDBmYTk0NWY1NTIuLjI1MTFlZTZlMDU5OGQ4ZWRmODVlZDgwYzE2
YThlMjlmMDk1OGI5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNw
cApAQCAtNzM0LDEyICs3MzQsMTIgQEAgdm9pZCBSZW5kZXJUYWJsZTo6cGFpbnRCb3hEZWNvcmF0
aW9ucyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHAKIAogICAgIEJh
Y2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSA9IGRldGVybWluZUJhY2tncm91
bmRCbGVlZEF2b2lkYW5jZShwYWludEluZm8uY29udGV4dCk7CiAgICAgaWYgKCFib3hTaGFkb3dT
aG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoYmxlZWRBdm9pZGFuY2UpKQotICAgICAgICBwYWlu
dEJveFNoYWRvdyhwYWludEluZm8sIHJlY3QsICZzdHlsZSgpLCBOb3JtYWwpOworICAgICAgICBw
YWludEJveFNoYWRvdyhwYWludEluZm8sIHJlY3QsIHN0eWxlKCksIE5vcm1hbCk7CiAgICAgcGFp
bnRCYWNrZ3JvdW5kKHBhaW50SW5mbywgcmVjdCwgYmxlZWRBdm9pZGFuY2UpOwotICAgIHBhaW50
Qm94U2hhZG93KHBhaW50SW5mbywgcmVjdCwgJnN0eWxlKCksIEluc2V0KTsKKyAgICBwYWludEJv
eFNoYWRvdyhwYWludEluZm8sIHJlY3QsIHN0eWxlKCksIEluc2V0KTsKIAogICAgIGlmIChzdHls
ZSgpLmhhc0JvcmRlcigpICYmICFjb2xsYXBzZUJvcmRlcnMoKSkKLSAgICAgICAgcGFpbnRCb3Jk
ZXIocGFpbnRJbmZvLCByZWN0LCAmc3R5bGUoKSk7CisgICAgICAgIHBhaW50Qm9yZGVyKHBhaW50
SW5mbywgcmVjdCwgc3R5bGUoKSk7CiB9CiAKIHZvaWQgUmVuZGVyVGFibGU6OnBhaW50TWFzayhQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAppbmRleCA3ZGY1MzY3
YmNiZWZlNTM2MTMzNDIzOWVhMDU5ODIwMjE2NjE3ZTYwLi41Nzk2YjE2MDhlYzBhMTc4ZDg3ZjNh
MjAxYmMzZDcwNzRkZWNhNjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVDZWxsLmNwcApAQCAtMTMxOSwxNyArMTMxOSwxNyBAQCB2b2lkIFJlbmRlclRhYmxlQ2Vs
bDo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0
UG9pbgogICAgICAgICByZXR1cm47CiAKICAgICBMYXlvdXRSZWN0IHBhaW50UmVjdCA9IExheW91
dFJlY3QocGFpbnRPZmZzZXQsIHBpeGVsU25hcHBlZFNpemUoKSk7Ci0gICAgcGFpbnRCb3hTaGFk
b3cocGFpbnRJbmZvLCBwYWludFJlY3QsICZzdHlsZSgpLCBOb3JtYWwpOworICAgIHBhaW50Qm94
U2hhZG93KHBhaW50SW5mbywgcGFpbnRSZWN0LCBzdHlsZSgpLCBOb3JtYWwpOwogICAgIAogICAg
IC8vIFBhaW50IG91ciBjZWxsIGJhY2tncm91bmQuCiAgICAgcGFpbnRCYWNrZ3JvdW5kc0JlaGlu
ZENlbGwocGFpbnRJbmZvLCBwYWludE9mZnNldCwgdGhpcyk7CiAKLSAgICBwYWludEJveFNoYWRv
dyhwYWludEluZm8sIHBhaW50UmVjdCwgJnN0eWxlKCksIEluc2V0KTsKKyAgICBwYWludEJveFNo
YWRvdyhwYWludEluZm8sIHBhaW50UmVjdCwgc3R5bGUoKSwgSW5zZXQpOwogCiAgICAgaWYgKCFz
dHlsZSgpLmhhc0JvcmRlcigpIHx8IHRhYmxlRWx0LT5jb2xsYXBzZUJvcmRlcnMoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgcGFpbnRCb3JkZXIocGFpbnRJbmZvLCBwYWludFJlY3QsICZzdHls
ZSgpKTsKKyAgICBwYWludEJvcmRlcihwYWludEluZm8sIHBhaW50UmVjdCwgc3R5bGUoKSk7CiB9
CiAKIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpwYWludE1hc2soUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkK
</data>
<flag name="review"
          id="250850"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>