<?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>134280</bug_id>
          
          <creation_ts>2014-06-24 16:27:00 -0700</creation_ts>
          <short_desc>Simplify decodeLegacySessionState</short_desc>
          <delta_ts>2014-06-24 16:33:29 -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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1018162</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-24 16:27:00 -0700</bug_when>
    <thetext>Simplify decodeLegacySessionState</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018163</commentid>
    <comment_count>1</comment_count>
      <attachid>233762</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-24 16:28:30 -0700</bug_when>
    <thetext>Created attachment 233762
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018165</commentid>
    <comment_count>2</comment_count>
      <attachid>233762</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-06-24 16:32:04 -0700</bug_when>
    <thetext>Comment on attachment 233762
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018169</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-24 16:33:29 -0700</bug_when>
    <thetext>Committed r170403: &lt;http://trac.webkit.org/changeset/170403&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233762</attachid>
            <date>2014-06-24 16:28:30 -0700</date>
            <delta_ts>2014-06-24 16:32:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134280-20140624162810.patch</filename>
            <type>text/plain</type>
            <size>18360</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjIyYmI2NTQxZTNjMGY0
OWM0NzEzZTMxNGZiZmNkM2Y4ZGRlZDBkMS4uNGRiNWUyYmU5NGIyODI0MWNjNTgyNTg3NGVkMGM1
Y2IxODhmYWQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDE0LTA2LTI0ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgU2ltcGxpZnkgZGVj
b2RlTGVnYWN5U2Vzc2lvblN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzQyODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVyZSdzIG5vIG5lZWQgdG8gdXNlIGEgTGVnYWN5U2Vzc2lvblN0YXRl
RGVjb2RlciBvYmplY3Qgd2l0aCBhIHNpbmdsZSBtZW1iZXIsCisgICAgICAgIGp1c3QgbWFrZSBh
bGwgZnVuY3Rpb25zIHN0YXRpYyBhbmQgb25seSBleHBvcnQgYSBzaW5nbGUgZW50cnkgcG9pbnQ7
IGRlY29kZUxlZ2FjeVNlc3Npb25TdGF0ZS4KKworICAgICAgICBObyBmdW5jdGlvbmFsaXR5IGNo
YW5nZSwganVzdCBtb3ZpbmcgY29kZSBhcm91bmQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tTZXNzaW9uU3RhdGVSZWYuY3BwOgorICAgICAgICAoV0tTZXNzaW9uU3RhdGVDcmVhdGVG
cm9tRGF0YSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2Rp
bmcuY3BwOgorICAgICAgICAoV2ViS2l0OjpkZWNvZGVTZXNzaW9uSGlzdG9yeUVudHJ5RGF0YSk6
CisgICAgICAgIChXZWJLaXQ6OmRlY29kZVNlc3Npb25IaXN0b3J5RW50cnkpOgorICAgICAgICAo
V2ViS2l0OjpkZWNvZGVTZXNzaW9uSGlzdG9yeUVudHJpZXMpOgorICAgICAgICAoV2ViS2l0Ojpk
ZWNvZGVWMFNlc3Npb25IaXN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6ZGVjb2RlVjFTZXNzaW9u
SGlzdG9yeSk6CisgICAgICAgIChXZWJLaXQ6OmRlY29kZVNlc3Npb25IaXN0b3J5KToKKyAgICAg
ICAgKFdlYktpdDo6ZGVjb2RlTGVnYWN5U2Vzc2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
TGVnYWN5U2Vzc2lvblN0YXRlRGVjb2Rlcjo6TGVnYWN5U2Vzc2lvblN0YXRlRGVjb2Rlcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkxlZ2FjeVNlc3Npb25TdGF0ZURlY29kZXI6On5MZWdh
Y3lTZXNzaW9uU3RhdGVEZWNvZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TGVnYWN5
U2Vzc2lvblN0YXRlRGVjb2Rlcjo6ZGVjb2RlU2Vzc2lvblN0YXRlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TGVnYWN5U2Vzc2lvblN0YXRlRGVjb2Rlcjo6ZGVjb2RlU2Vzc2lvbkhpc3Rv
cnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpMZWdhY3lTZXNzaW9uU3RhdGVEZWNvZGVy
OjpkZWNvZGVWMFNlc3Npb25IaXN0b3J5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TGVn
YWN5U2Vzc2lvblN0YXRlRGVjb2Rlcjo6ZGVjb2RlVjFTZXNzaW9uSGlzdG9yeSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OkxlZ2FjeVNlc3Npb25TdGF0ZURlY29kZXI6OmRlY29kZVNlc3Np
b25IaXN0b3J5RW50cmllcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkxlZ2FjeVNlc3Np
b25TdGF0ZURlY29kZXI6OmRlY29kZVNlc3Npb25IaXN0b3J5RW50cnkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpMZWdhY3lTZXNzaW9uU3RhdGVEZWNvZGVyOjpkZWNvZGVTZXNzaW9uSGlz
dG9yeUVudHJ5RGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9MZWdhY3lT
ZXNzaW9uU3RhdGVDb2RpbmcuaDoKKworMjAxNC0wNi0yNCAgQW5kZXJzIENhcmxzc29uICA8YW5k
ZXJzY2FAYXBwbGUuY29tPgorCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciB2MCBsZWdhY3kgZGVj
b2RpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
NDI3NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNz
aW9uU3RhdGVSZWYuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lv
blN0YXRlUmVmLmNwcAppbmRleCA4Y2U2ZDkxMzFkMjdlYTIyYWJiMzhlNjU1YTA5MWI0Y2Y1Mzdl
M2ZjLi5mNmU3M2VkZDJhZjg5OTQ5ZjBhNTI5OGJhZmYxODQzNTYxMGQzZjc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uU3RhdGVSZWYuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Nlc3Npb25TdGF0ZVJlZi5jcHAK
QEAgLTMzLDEwICszMyw4IEBACiAKIFdLU2Vzc2lvblN0YXRlUmVmIFdLU2Vzc2lvblN0YXRlQ3Jl
YXRlRnJvbURhdGEoV0tEYXRhUmVmIGRhdGEpCiB7Ci0gICAgV2ViS2l0OjpMZWdhY3lTZXNzaW9u
U3RhdGVEZWNvZGVyIGRlY29kZXIgeyBXZWJLaXQ6OnRvSW1wbChkYXRhKSB9OwotCiAgICAgV2Vi
S2l0OjpTZXNzaW9uU3RhdGUgc2Vzc2lvblN0YXRlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVT
ZXNzaW9uU3RhdGUoc2Vzc2lvblN0YXRlKSkKKyAgICBpZiAoIVdlYktpdDo6ZGVjb2RlTGVnYWN5
U2Vzc2lvblN0YXRlKCpXZWJLaXQ6OnRvSW1wbChkYXRhKSwgc2Vzc2lvblN0YXRlKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICByZXR1cm4gV2ViS2l0Ojp0b0FQSShBUEk6OlNlc3Np
b25TdGF0ZTo6Y3JlYXRlKHN0ZDo6bW92ZShzZXNzaW9uU3RhdGUpKS5sZWFrUmVmKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVD
b2RpbmcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3Rh
dGVDb2RpbmcuY3BwCmluZGV4IDY2YjcyYTBhZmExMmE2OTYyNzNjNTI2OWFmNDg2NzE1MDExNjQ1
ZGIuLmU0N2YxZmZhMGI0ZGVkOTJiZTkyZmMxNTYwOTY5MDZlYTNkMTVhNzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNv
ZGluZy5jcHAKQEAgLTUzLDE4MSArNTMsNiBAQCBzdGF0aWMgQ0ZTdHJpbmdSZWYgc2Vzc2lvbkhp
c3RvcnlFbnRyeURhdGFLZXkgPSBDRlNUUigiU2Vzc2lvbkhpc3RvcnlFbnRyeURhdGEiKQogLy8g
U2Vzc2lvbiBoaXN0b3J5IGVudHJ5IGRhdGEuCiBjb25zdCB1aW50MzJfdCBzZXNzaW9uSGlzdG9y
eUVudHJ5RGF0YVZlcnNpb24gPSAyOwogCi1MZWdhY3lTZXNzaW9uU3RhdGVEZWNvZGVyOjpMZWdh
Y3lTZXNzaW9uU3RhdGVEZWNvZGVyKEFQSTo6RGF0YSogZGF0YSkKLSAgICA6IG1fZGF0YShkYXRh
KQotewotfQotCi1MZWdhY3lTZXNzaW9uU3RhdGVEZWNvZGVyOjp+TGVnYWN5U2Vzc2lvblN0YXRl
RGVjb2RlcigpCi17Ci19Ci0KLWJvb2wgTGVnYWN5U2Vzc2lvblN0YXRlRGVjb2Rlcjo6ZGVjb2Rl
U2Vzc2lvblN0YXRlKFNlc3Npb25TdGF0ZSYgc2Vzc2lvblN0YXRlKSBjb25zdAotewotICAgIGlm
ICghbV9kYXRhKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBzaXplX3Qgc2l6ZSA9IG1f
ZGF0YS0+c2l6ZSgpOwotICAgIGNvbnN0IHVpbnQ4X3QqIGJ5dGVzID0gbV9kYXRhLT5ieXRlcygp
OwotCi0gICAgaWYgKHNpemUgPCBzaXplb2YodWludDMyX3QpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICB1aW50MzJfdCB2ZXJzaW9uTnVtYmVyID0gKGJ5dGVzWzBdIDw8IDI0KSArIChi
eXRlc1sxXSA8PCAxNikgKyAoYnl0ZXNbMl0gPDwgOCkgKyBieXRlc1szXTsKLQotICAgIGlmICh2
ZXJzaW9uTnVtYmVyICE9IHNlc3Npb25TdGF0ZURhdGFWZXJzaW9uKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBhdXRvIGRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBieXRlcyArIHNpemVvZih1aW50MzJfdCksIHNpemUgLSBzaXplb2YodWludDMy
X3QpKSk7Ci0KLSAgICBhdXRvIHNlc3Npb25TdGF0ZURpY3Rpb25hcnkgPSBhZG9wdENGKGR5bmFt
aWNfY2ZfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGUHJvcGVydHlMaXN0Q3JlYXRlV2l0aERhdGEo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgZGF0YS5nZXQoKSwga0NGUHJvcGVydHlMaXN0SW1tdXRhYmxl
LCBudWxscHRyLCBudWxscHRyKSkpOwotICAgIGlmICghc2Vzc2lvblN0YXRlRGljdGlvbmFyeSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGF1dG8gYmFja0ZvcndhcmRMaXN0RGlj
dGlvbmFyeSA9IGR5bmFtaWNfY2ZfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGRGljdGlvbmFyeUdl
dFZhbHVlKHNlc3Npb25TdGF0ZURpY3Rpb25hcnkuZ2V0KCksIHNlc3Npb25IaXN0b3J5S2V5KSkp
IHsKLSAgICAgICAgaWYgKCFkZWNvZGVTZXNzaW9uSGlzdG9yeShiYWNrRm9yd2FyZExpc3REaWN0
aW9uYXJ5LCBzZXNzaW9uU3RhdGUuYmFja0ZvcndhcmRMaXN0U3RhdGUpKQotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGlmIChhdXRvIHByb3Zpc2lvbmFsVVJMU3RyaW5n
ID0gZHluYW1pY19jZl9jYXN0PENGU3RyaW5nUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShzZXNz
aW9uU3RhdGVEaWN0aW9uYXJ5LmdldCgpLCBwcm92aXNpb25hbFVSTEtleSkpKSB7Ci0gICAgICAg
IHNlc3Npb25TdGF0ZS5wcm92aXNpb25hbFVSTCA9IFdlYkNvcmU6OlVSTChXZWJDb3JlOjpVUkwo
KSwgcHJvdmlzaW9uYWxVUkxTdHJpbmcpOwotICAgICAgICBpZiAoIXNlc3Npb25TdGF0ZS5wcm92
aXNpb25hbFVSTC5pc1ZhbGlkKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgTGVnYWN5U2Vzc2lvblN0YXRlRGVjb2Rlcjo6
ZGVjb2RlU2Vzc2lvbkhpc3RvcnkoQ0ZEaWN0aW9uYXJ5UmVmIGJhY2tGb3J3YXJkTGlzdERpY3Rp
b25hcnksIEJhY2tGb3J3YXJkTGlzdFN0YXRlJiBiYWNrRm9yd2FyZExpc3RTdGF0ZSkgY29uc3QK
LXsKLSAgICBhdXRvIHNlc3Npb25IaXN0b3J5VmVyc2lvbk51bWJlciA9IGR5bmFtaWNfY2ZfY2Fz
dDxDRk51bWJlclJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoYmFja0ZvcndhcmRMaXN0RGljdGlv
bmFyeSwgc2Vzc2lvbkhpc3RvcnlWZXJzaW9uS2V5KSk7Ci0gICAgaWYgKCFzZXNzaW9uSGlzdG9y
eVZlcnNpb25OdW1iZXIpIHsKLSAgICAgICAgLy8gVmVyc2lvbiAwIHNlc3Npb24gaGlzdG9yeSBk
aWN0aW9uYXJpZXMgZGlkIG5vdCBjb250YWluIGEgdmVyc2lvbiBudW1iZXIuCi0gICAgICAgIHJl
dHVybiBkZWNvZGVWMFNlc3Npb25IaXN0b3J5KGJhY2tGb3J3YXJkTGlzdERpY3Rpb25hcnksIGJh
Y2tGb3J3YXJkTGlzdFN0YXRlKTsKLSAgICB9Ci0KLSAgICBDRkluZGV4IHNlc3Npb25IaXN0b3J5
VmVyc2lvbjsKLSAgICBpZiAoIUNGTnVtYmVyR2V0VmFsdWUoc2Vzc2lvbkhpc3RvcnlWZXJzaW9u
TnVtYmVyLCBrQ0ZOdW1iZXJDRkluZGV4VHlwZSwgJnNlc3Npb25IaXN0b3J5VmVyc2lvbikpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChzZXNzaW9uSGlzdG9yeVZlcnNpb24gPT0g
MSkKLSAgICAgICAgcmV0dXJuIGRlY29kZVYxU2Vzc2lvbkhpc3RvcnkoYmFja0ZvcndhcmRMaXN0
RGljdGlvbmFyeSwgYmFja0ZvcndhcmRMaXN0U3RhdGUpOwotCi0gICAgcmV0dXJuIGZhbHNlOwot
fQotCi1ib29sIExlZ2FjeVNlc3Npb25TdGF0ZURlY29kZXI6OmRlY29kZVYwU2Vzc2lvbkhpc3Rv
cnkoQ0ZEaWN0aW9uYXJ5UmVmIHNlc3Npb25IaXN0b3J5RGljdGlvbmFyeSwgQmFja0ZvcndhcmRM
aXN0U3RhdGUmIGJhY2tGb3J3YXJkTGlzdFN0YXRlKSBjb25zdAotewotICAgIGF1dG8gY3VycmVu
dEluZGV4TnVtYmVyID0gZHluYW1pY19jZl9jYXN0PENGTnVtYmVyUmVmPihDRkRpY3Rpb25hcnlH
ZXRWYWx1ZShzZXNzaW9uSGlzdG9yeURpY3Rpb25hcnksIHNlc3Npb25IaXN0b3J5Q3VycmVudElu
ZGV4S2V5KSk7Ci0gICAgaWYgKCFjdXJyZW50SW5kZXhOdW1iZXIpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIENGSW5kZXggY3VycmVudEluZGV4OwotICAgIGlmICghQ0ZOdW1iZXJHZXRW
YWx1ZShjdXJyZW50SW5kZXhOdW1iZXIsIGtDRk51bWJlckNGSW5kZXhUeXBlLCAmY3VycmVudElu
ZGV4KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGN1cnJlbnRJbmRleCA8IC0x
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBhdXRvIGhpc3RvcnlFbnRyaWVzID0gZHlu
YW1pY19jZl9jYXN0PENGQXJyYXlSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKHNlc3Npb25IaXN0
b3J5RGljdGlvbmFyeSwgc2Vzc2lvbkhpc3RvcnlFbnRyaWVzS2V5KSk7Ci0gICAgaWYgKCFoaXN0
b3J5RW50cmllcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgLy8gVmVyc2lvbiAwIHNl
c3Npb24gaGlzdG9yeSByZWxpZWQgb24gY3VycmVudEluZGV4ID09IC0xIHRvIHJlcHJlc2VudCB0
aGUgc2FtZSB0aGluZyBhcyBub3QgaGF2aW5nIGEgY3VycmVudCBpbmRleC4KLSAgICBib29sIGhh
c0N1cnJlbnRJbmRleCA9IGN1cnJlbnRJbmRleCAhPSAtMTsKLQotICAgIGlmICghZGVjb2RlU2Vz
c2lvbkhpc3RvcnlFbnRyaWVzKGhpc3RvcnlFbnRyaWVzLCBiYWNrRm9yd2FyZExpc3RTdGF0ZS5p
dGVtcykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghaGFzQ3VycmVudEluZGV4
ICYmIENGQXJyYXlHZXRDb3VudChoaXN0b3J5RW50cmllcykpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGlmIChoYXNDdXJyZW50SW5kZXgpIHsKLSAgICAgICAgaWYgKHN0YXRpY19jYXN0
PHVpbnQzMl90PihjdXJyZW50SW5kZXgpID49IGJhY2tGb3J3YXJkTGlzdFN0YXRlLml0ZW1zLnNp
emUoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBiYWNrRm9yd2FyZExp
c3RTdGF0ZS5jdXJyZW50SW5kZXggPSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oY3VycmVudEluZGV4
KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBMZWdhY3lTZXNzaW9uU3Rh
dGVEZWNvZGVyOjpkZWNvZGVWMVNlc3Npb25IaXN0b3J5KENGRGljdGlvbmFyeVJlZiBzZXNzaW9u
SGlzdG9yeURpY3Rpb25hcnksIEJhY2tGb3J3YXJkTGlzdFN0YXRlJiBiYWNrRm9yd2FyZExpc3RT
dGF0ZSkgY29uc3QKLXsKLSAgICBhdXRvIGN1cnJlbnRJbmRleE51bWJlciA9IGR5bmFtaWNfY2Zf
Y2FzdDxDRk51bWJlclJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoc2Vzc2lvbkhpc3RvcnlEaWN0
aW9uYXJ5LCBzZXNzaW9uSGlzdG9yeUN1cnJlbnRJbmRleEtleSkpOwotICAgIGlmICghY3VycmVu
dEluZGV4TnVtYmVyKSB7Ci0gICAgICAgIC8vIE5vIGN1cnJlbnQgaW5kZXggbWVhbnMgdGhlIGRp
Y3Rpb25hcnkgcmVwcmVzZW50cyBhbiBlbXB0eSBzZXNzaW9uLgotICAgICAgICBiYWNrRm9yd2Fy
ZExpc3RTdGF0ZS5jdXJyZW50SW5kZXggPSAwOwotICAgICAgICBiYWNrRm9yd2FyZExpc3RTdGF0
ZS5pdGVtcyA9IHsgfTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgQ0ZJbmRl
eCBjdXJyZW50SW5kZXg7Ci0gICAgaWYgKCFDRk51bWJlckdldFZhbHVlKGN1cnJlbnRJbmRleE51
bWJlciwga0NGTnVtYmVyQ0ZJbmRleFR5cGUsICZjdXJyZW50SW5kZXgpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBpZiAoY3VycmVudEluZGV4IDwgMCkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgYXV0byBoaXN0b3J5RW50cmllcyA9IGR5bmFtaWNfY2ZfY2FzdDxDRkFycmF5
UmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShzZXNzaW9uSGlzdG9yeURpY3Rpb25hcnksIHNlc3Np
b25IaXN0b3J5RW50cmllc0tleSkpOwotICAgIGlmICghaGlzdG9yeUVudHJpZXMpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGlmICghZGVjb2RlU2Vzc2lvbkhpc3RvcnlFbnRyaWVzKGhp
c3RvcnlFbnRyaWVzLCBiYWNrRm9yd2FyZExpc3RTdGF0ZS5pdGVtcykpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIGJhY2tGb3J3YXJkTGlzdFN0YXRlLmN1cnJlbnRJbmRleCA9IHN0YXRp
Y19jYXN0PHVpbnQzMl90PihjdXJyZW50SW5kZXgpOwotICAgIGlmIChzdGF0aWNfY2FzdDx1aW50
MzJfdD4oY3VycmVudEluZGV4KSA+PSBiYWNrRm9yd2FyZExpc3RTdGF0ZS5pdGVtcy5zaXplKCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIExl
Z2FjeVNlc3Npb25TdGF0ZURlY29kZXI6OmRlY29kZVNlc3Npb25IaXN0b3J5RW50cmllcyhDRkFy
cmF5UmVmIGVudHJpZXNBcnJheSwgVmVjdG9yPFBhZ2VTdGF0ZT4mIGVudHJpZXMpIGNvbnN0Ci17
Ci0gICAgZm9yIChDRkluZGV4IGkgPSAwLCBzaXplID0gQ0ZBcnJheUdldENvdW50KGVudHJpZXNB
cnJheSk7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgYXV0byBlbnRyeURpY3Rpb25hcnkgPSBk
eW5hbWljX2NmX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGVu
dHJpZXNBcnJheSwgaSkpOwotICAgICAgICBpZiAoIWVudHJ5RGljdGlvbmFyeSkKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBQYWdlU3RhdGUgZW50cnk7Ci0gICAgICAgIGlm
ICghZGVjb2RlU2Vzc2lvbkhpc3RvcnlFbnRyeShlbnRyeURpY3Rpb25hcnksIGVudHJ5KSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBlbnRyaWVzLmFwcGVuZChzdGQ6Om1v
dmUoZW50cnkpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBMZWdhY3lT
ZXNzaW9uU3RhdGVEZWNvZGVyOjpkZWNvZGVTZXNzaW9uSGlzdG9yeUVudHJ5KENGRGljdGlvbmFy
eVJlZiBlbnRyeURpY3Rpb25hcnksIFBhZ2VTdGF0ZSYgcGFnZVN0YXRlKSBjb25zdAotewotICAg
IGF1dG8gdGl0bGUgPSBkeW5hbWljX2NmX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGRGljdGlvbmFyeUdl
dFZhbHVlKGVudHJ5RGljdGlvbmFyeSwgc2Vzc2lvbkhpc3RvcnlFbnRyeVRpdGxlS2V5KSk7Ci0g
ICAgaWYgKCF0aXRsZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgYXV0byB1cmxTdHJp
bmcgPSBkeW5hbWljX2NmX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKGVu
dHJ5RGljdGlvbmFyeSwgc2Vzc2lvbkhpc3RvcnlFbnRyeVVSTEtleSkpOwotICAgIGlmICghdXJs
U3RyaW5nKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBhdXRvIG9yaWdpbmFsVVJMU3Ry
aW5nID0gZHluYW1pY19jZl9jYXN0PENGU3RyaW5nUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShl
bnRyeURpY3Rpb25hcnksIHNlc3Npb25IaXN0b3J5RW50cnlPcmlnaW5hbFVSTEtleSkpOwotICAg
IGlmICghb3JpZ2luYWxVUkxTdHJpbmcpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGF1
dG8gaGlzdG9yeUVudHJ5RGF0YSA9IGR5bmFtaWNfY2ZfY2FzdDxDRkRhdGFSZWY+KENGRGljdGlv
bmFyeUdldFZhbHVlKGVudHJ5RGljdGlvbmFyeSwgc2Vzc2lvbkhpc3RvcnlFbnRyeURhdGFLZXkp
KTsKLSAgICBpZiAoIWhpc3RvcnlFbnRyeURhdGEpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIGlmICghZGVjb2RlU2Vzc2lvbkhpc3RvcnlFbnRyeURhdGEoaGlzdG9yeUVudHJ5RGF0YSwg
cGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
cGFnZVN0YXRlLnRpdGxlID0gdGl0bGU7Ci0gICAgcGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlLnVy
bFN0cmluZyA9IHVybFN0cmluZzsKLSAgICBwYWdlU3RhdGUubWFpbkZyYW1lU3RhdGUub3JpZ2lu
YWxVUkxTdHJpbmcgPSBvcmlnaW5hbFVSTFN0cmluZzsKLQotICAgIHJldHVybiB0cnVlOwotfQot
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGlzVmFsaWRFbnVtKFQpOwogCiBjbGFzcyBIaXN0
b3J5RW50cnlEYXRhRGVjb2RlciB7CkBAIC02NzEsNyArNDk2LDcgQEAgc3RhdGljIHZvaWQgZGVj
b2RlQmFja0ZvcndhcmRUcmVlTm9kZShIaXN0b3J5RW50cnlEYXRhRGVjb2RlciYgZGVjb2Rlciwg
RnJhbWVTdGEKICNlbmRpZgogfQogCi1ib29sIExlZ2FjeVNlc3Npb25TdGF0ZURlY29kZXI6OmRl
Y29kZVNlc3Npb25IaXN0b3J5RW50cnlEYXRhKENGRGF0YVJlZiBoaXN0b3J5RW50cnlEYXRhLCBG
cmFtZVN0YXRlJiBtYWluRnJhbWVTdGF0ZSkgY29uc3QKK3N0YXRpYyBib29sIGRlY29kZVNlc3Np
b25IaXN0b3J5RW50cnlEYXRhKENGRGF0YVJlZiBoaXN0b3J5RW50cnlEYXRhLCBGcmFtZVN0YXRl
JiBtYWluRnJhbWVTdGF0ZSkKIHsKICAgICBIaXN0b3J5RW50cnlEYXRhRGVjb2RlciBkZWNvZGVy
IHsgQ0ZEYXRhR2V0Qnl0ZVB0cihoaXN0b3J5RW50cnlEYXRhKSwgc3RhdGljX2Nhc3Q8c2l6ZV90
PihDRkRhdGFHZXRMZW5ndGgoaGlzdG9yeUVudHJ5RGF0YSkpIH07CiAKQEAgLTY4Niw1ICs1MTEs
MTY1IEBAIGJvb2wgTGVnYWN5U2Vzc2lvblN0YXRlRGVjb2Rlcjo6ZGVjb2RlU2Vzc2lvbkhpc3Rv
cnlFbnRyeURhdGEoQ0ZEYXRhUmVmIGhpc3RvcnlFCiAgICAgcmV0dXJuIGRlY29kZXIuZmluaXNo
RGVjb2RpbmcoKTsKIH0KIAorc3RhdGljIGJvb2wgZGVjb2RlU2Vzc2lvbkhpc3RvcnlFbnRyeShD
RkRpY3Rpb25hcnlSZWYgZW50cnlEaWN0aW9uYXJ5LCBQYWdlU3RhdGUmIHBhZ2VTdGF0ZSkKK3sK
KyAgICBhdXRvIHRpdGxlID0gZHluYW1pY19jZl9jYXN0PENGU3RyaW5nUmVmPihDRkRpY3Rpb25h
cnlHZXRWYWx1ZShlbnRyeURpY3Rpb25hcnksIHNlc3Npb25IaXN0b3J5RW50cnlUaXRsZUtleSkp
OworICAgIGlmICghdGl0bGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gdXJs
U3RyaW5nID0gZHluYW1pY19jZl9jYXN0PENGU3RyaW5nUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1
ZShlbnRyeURpY3Rpb25hcnksIHNlc3Npb25IaXN0b3J5RW50cnlVUkxLZXkpKTsKKyAgICBpZiAo
IXVybFN0cmluZykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBvcmlnaW5hbFVS
TFN0cmluZyA9IGR5bmFtaWNfY2ZfY2FzdDxDRlN0cmluZ1JlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFs
dWUoZW50cnlEaWN0aW9uYXJ5LCBzZXNzaW9uSGlzdG9yeUVudHJ5T3JpZ2luYWxVUkxLZXkpKTsK
KyAgICBpZiAoIW9yaWdpbmFsVVJMU3RyaW5nKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBhdXRvIGhpc3RvcnlFbnRyeURhdGEgPSBkeW5hbWljX2NmX2Nhc3Q8Q0ZEYXRhUmVmPihDRkRp
Y3Rpb25hcnlHZXRWYWx1ZShlbnRyeURpY3Rpb25hcnksIHNlc3Npb25IaXN0b3J5RW50cnlEYXRh
S2V5KSk7CisgICAgaWYgKCFoaXN0b3J5RW50cnlEYXRhKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoIWRlY29kZVNlc3Npb25IaXN0b3J5RW50cnlEYXRhKGhpc3RvcnlFbnRyeURh
dGEsIHBhZ2VTdGF0ZS5tYWluRnJhbWVTdGF0ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIHBhZ2VTdGF0ZS50aXRsZSA9IHRpdGxlOworICAgIHBhZ2VTdGF0ZS5tYWluRnJhbWVTdGF0
ZS51cmxTdHJpbmcgPSB1cmxTdHJpbmc7CisgICAgcGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlLm9y
aWdpbmFsVVJMU3RyaW5nID0gb3JpZ2luYWxVUkxTdHJpbmc7CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworc3RhdGljIGJvb2wgZGVjb2RlU2Vzc2lvbkhpc3RvcnlFbnRyaWVzKENGQXJyYXlSZWYg
ZW50cmllc0FycmF5LCBWZWN0b3I8UGFnZVN0YXRlPiYgZW50cmllcykKK3sKKyAgICBmb3IgKENG
SW5kZXggaSA9IDAsIHNpemUgPSBDRkFycmF5R2V0Q291bnQoZW50cmllc0FycmF5KTsgaSA8IHNp
emU7ICsraSkgeworICAgICAgICBhdXRvIGVudHJ5RGljdGlvbmFyeSA9IGR5bmFtaWNfY2ZfY2Fz
dDxDRkRpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoZW50cmllc0FycmF5LCBp
KSk7CisgICAgICAgIGlmICghZW50cnlEaWN0aW9uYXJ5KQorICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgICAgIFBhZ2VTdGF0ZSBlbnRyeTsKKyAgICAgICAgaWYgKCFkZWNvZGVTZXNz
aW9uSGlzdG9yeUVudHJ5KGVudHJ5RGljdGlvbmFyeSwgZW50cnkpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgIGVudHJpZXMuYXBwZW5kKHN0ZDo6bW92ZShlbnRyeSkpOwor
ICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitzdGF0aWMgYm9vbCBkZWNvZGVWMFNlc3Np
b25IaXN0b3J5KENGRGljdGlvbmFyeVJlZiBzZXNzaW9uSGlzdG9yeURpY3Rpb25hcnksIEJhY2tG
b3J3YXJkTGlzdFN0YXRlJiBiYWNrRm9yd2FyZExpc3RTdGF0ZSkKK3sKKyAgICBhdXRvIGN1cnJl
bnRJbmRleE51bWJlciA9IGR5bmFtaWNfY2ZfY2FzdDxDRk51bWJlclJlZj4oQ0ZEaWN0aW9uYXJ5
R2V0VmFsdWUoc2Vzc2lvbkhpc3RvcnlEaWN0aW9uYXJ5LCBzZXNzaW9uSGlzdG9yeUN1cnJlbnRJ
bmRleEtleSkpOworICAgIGlmICghY3VycmVudEluZGV4TnVtYmVyKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBDRkluZGV4IGN1cnJlbnRJbmRleDsKKyAgICBpZiAoIUNGTnVtYmVyR2V0
VmFsdWUoY3VycmVudEluZGV4TnVtYmVyLCBrQ0ZOdW1iZXJDRkluZGV4VHlwZSwgJmN1cnJlbnRJ
bmRleCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChjdXJyZW50SW5kZXggPCAt
MSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBoaXN0b3J5RW50cmllcyA9IGR5
bmFtaWNfY2ZfY2FzdDxDRkFycmF5UmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShzZXNzaW9uSGlz
dG9yeURpY3Rpb25hcnksIHNlc3Npb25IaXN0b3J5RW50cmllc0tleSkpOworICAgIGlmICghaGlz
dG9yeUVudHJpZXMpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIFZlcnNpb24gMCBz
ZXNzaW9uIGhpc3RvcnkgcmVsaWVkIG9uIGN1cnJlbnRJbmRleCA9PSAtMSB0byByZXByZXNlbnQg
dGhlIHNhbWUgdGhpbmcgYXMgbm90IGhhdmluZyBhIGN1cnJlbnQgaW5kZXguCisgICAgYm9vbCBo
YXNDdXJyZW50SW5kZXggPSBjdXJyZW50SW5kZXggIT0gLTE7CisKKyAgICBpZiAoIWRlY29kZVNl
c3Npb25IaXN0b3J5RW50cmllcyhoaXN0b3J5RW50cmllcywgYmFja0ZvcndhcmRMaXN0U3RhdGUu
aXRlbXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWhhc0N1cnJlbnRJbmRl
eCAmJiBDRkFycmF5R2V0Q291bnQoaGlzdG9yeUVudHJpZXMpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBpZiAoaGFzQ3VycmVudEluZGV4KSB7CisgICAgICAgIGlmIChzdGF0aWNfY2Fz
dDx1aW50MzJfdD4oY3VycmVudEluZGV4KSA+PSBiYWNrRm9yd2FyZExpc3RTdGF0ZS5pdGVtcy5z
aXplKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgYmFja0ZvcndhcmRM
aXN0U3RhdGUuY3VycmVudEluZGV4ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGN1cnJlbnRJbmRl
eCk7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIGRlY29kZVYx
U2Vzc2lvbkhpc3RvcnkoQ0ZEaWN0aW9uYXJ5UmVmIHNlc3Npb25IaXN0b3J5RGljdGlvbmFyeSwg
QmFja0ZvcndhcmRMaXN0U3RhdGUmIGJhY2tGb3J3YXJkTGlzdFN0YXRlKQoreworICAgIGF1dG8g
Y3VycmVudEluZGV4TnVtYmVyID0gZHluYW1pY19jZl9jYXN0PENGTnVtYmVyUmVmPihDRkRpY3Rp
b25hcnlHZXRWYWx1ZShzZXNzaW9uSGlzdG9yeURpY3Rpb25hcnksIHNlc3Npb25IaXN0b3J5Q3Vy
cmVudEluZGV4S2V5KSk7CisgICAgaWYgKCFjdXJyZW50SW5kZXhOdW1iZXIpIHsKKyAgICAgICAg
Ly8gTm8gY3VycmVudCBpbmRleCBtZWFucyB0aGUgZGljdGlvbmFyeSByZXByZXNlbnRzIGFuIGVt
cHR5IHNlc3Npb24uCisgICAgICAgIGJhY2tGb3J3YXJkTGlzdFN0YXRlLmN1cnJlbnRJbmRleCA9
IDA7CisgICAgICAgIGJhY2tGb3J3YXJkTGlzdFN0YXRlLml0ZW1zID0geyB9OworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBDRkluZGV4IGN1cnJlbnRJbmRleDsKKyAgICBpZiAo
IUNGTnVtYmVyR2V0VmFsdWUoY3VycmVudEluZGV4TnVtYmVyLCBrQ0ZOdW1iZXJDRkluZGV4VHlw
ZSwgJmN1cnJlbnRJbmRleCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChjdXJy
ZW50SW5kZXggPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIGhpc3RvcnlF
bnRyaWVzID0gZHluYW1pY19jZl9jYXN0PENGQXJyYXlSZWY+KENGRGljdGlvbmFyeUdldFZhbHVl
KHNlc3Npb25IaXN0b3J5RGljdGlvbmFyeSwgc2Vzc2lvbkhpc3RvcnlFbnRyaWVzS2V5KSk7Cisg
ICAgaWYgKCFoaXN0b3J5RW50cmllcykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYg
KCFkZWNvZGVTZXNzaW9uSGlzdG9yeUVudHJpZXMoaGlzdG9yeUVudHJpZXMsIGJhY2tGb3J3YXJk
TGlzdFN0YXRlLml0ZW1zKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYmFja0Zvcndh
cmRMaXN0U3RhdGUuY3VycmVudEluZGV4ID0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+KGN1cnJlbnRJ
bmRleCk7CisgICAgaWYgKHN0YXRpY19jYXN0PHVpbnQzMl90PihjdXJyZW50SW5kZXgpID49IGJh
Y2tGb3J3YXJkTGlzdFN0YXRlLml0ZW1zLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBib29sIGRlY29kZVNlc3Npb25IaXN0b3J5
KENGRGljdGlvbmFyeVJlZiBiYWNrRm9yd2FyZExpc3REaWN0aW9uYXJ5LCBCYWNrRm9yd2FyZExp
c3RTdGF0ZSYgYmFja0ZvcndhcmRMaXN0U3RhdGUpCit7CisgICAgYXV0byBzZXNzaW9uSGlzdG9y
eVZlcnNpb25OdW1iZXIgPSBkeW5hbWljX2NmX2Nhc3Q8Q0ZOdW1iZXJSZWY+KENGRGljdGlvbmFy
eUdldFZhbHVlKGJhY2tGb3J3YXJkTGlzdERpY3Rpb25hcnksIHNlc3Npb25IaXN0b3J5VmVyc2lv
bktleSkpOworICAgIGlmICghc2Vzc2lvbkhpc3RvcnlWZXJzaW9uTnVtYmVyKSB7CisgICAgICAg
IC8vIFZlcnNpb24gMCBzZXNzaW9uIGhpc3RvcnkgZGljdGlvbmFyaWVzIGRpZCBub3QgY29udGFp
biBhIHZlcnNpb24gbnVtYmVyLgorICAgICAgICByZXR1cm4gZGVjb2RlVjBTZXNzaW9uSGlzdG9y
eShiYWNrRm9yd2FyZExpc3REaWN0aW9uYXJ5LCBiYWNrRm9yd2FyZExpc3RTdGF0ZSk7CisgICAg
fQorCisgICAgQ0ZJbmRleCBzZXNzaW9uSGlzdG9yeVZlcnNpb247CisgICAgaWYgKCFDRk51bWJl
ckdldFZhbHVlKHNlc3Npb25IaXN0b3J5VmVyc2lvbk51bWJlciwga0NGTnVtYmVyQ0ZJbmRleFR5
cGUsICZzZXNzaW9uSGlzdG9yeVZlcnNpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoc2Vzc2lvbkhpc3RvcnlWZXJzaW9uID09IDEpCisgICAgICAgIHJldHVybiBkZWNvZGVW
MVNlc3Npb25IaXN0b3J5KGJhY2tGb3J3YXJkTGlzdERpY3Rpb25hcnksIGJhY2tGb3J3YXJkTGlz
dFN0YXRlKTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBkZWNvZGVMZWdhY3lTZXNz
aW9uU3RhdGUoY29uc3QgQVBJOjpEYXRhJiBkYXRhLCBTZXNzaW9uU3RhdGUmIHNlc3Npb25TdGF0
ZSkKK3sKKyAgICBzaXplX3Qgc2l6ZSA9IGRhdGEuc2l6ZSgpOworICAgIGNvbnN0IHVpbnQ4X3Qq
IGJ5dGVzID0gZGF0YS5ieXRlcygpOworCisgICAgaWYgKHNpemUgPCBzaXplb2YodWludDMyX3Qp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB1aW50MzJfdCB2ZXJzaW9uTnVtYmVyID0g
KGJ5dGVzWzBdIDw8IDI0KSArIChieXRlc1sxXSA8PCAxNikgKyAoYnl0ZXNbMl0gPDwgOCkgKyBi
eXRlc1szXTsKKworICAgIGlmICh2ZXJzaW9uTnVtYmVyICE9IHNlc3Npb25TdGF0ZURhdGFWZXJz
aW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIHNlc3Npb25TdGF0ZURpY3Rp
b25hcnkgPSBhZG9wdENGKGR5bmFtaWNfY2ZfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGUHJvcGVy
dHlMaXN0Q3JlYXRlV2l0aERhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYWRvcHRDRihDRkRhdGFD
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYnl0ZXMgKyBzaXplb2YodWludDMyX3QpLCBzaXpl
IC0gc2l6ZW9mKHVpbnQzMl90KSkpLmdldCgpLCBrQ0ZQcm9wZXJ0eUxpc3RJbW11dGFibGUsIG51
bGxwdHIsIG51bGxwdHIpKSk7CisgICAgaWYgKCFzZXNzaW9uU3RhdGVEaWN0aW9uYXJ5KQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoYXV0byBiYWNrRm9yd2FyZExpc3REaWN0aW9u
YXJ5ID0gZHluYW1pY19jZl9jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFs
dWUoc2Vzc2lvblN0YXRlRGljdGlvbmFyeS5nZXQoKSwgc2Vzc2lvbkhpc3RvcnlLZXkpKSkgewor
ICAgICAgICBpZiAoIWRlY29kZVNlc3Npb25IaXN0b3J5KGJhY2tGb3J3YXJkTGlzdERpY3Rpb25h
cnksIHNlc3Npb25TdGF0ZS5iYWNrRm9yd2FyZExpc3RTdGF0ZSkpCisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGF1dG8gcHJvdmlzaW9uYWxVUkxTdHJpbmcgPSBk
eW5hbWljX2NmX2Nhc3Q8Q0ZTdHJpbmdSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKHNlc3Npb25T
dGF0ZURpY3Rpb25hcnkuZ2V0KCksIHByb3Zpc2lvbmFsVVJMS2V5KSkpIHsKKyAgICAgICAgc2Vz
c2lvblN0YXRlLnByb3Zpc2lvbmFsVVJMID0gV2ViQ29yZTo6VVJMKFdlYkNvcmU6OlVSTCgpLCBw
cm92aXNpb25hbFVSTFN0cmluZyk7CisgICAgICAgIGlmICghc2Vzc2lvblN0YXRlLnByb3Zpc2lv
bmFsVVJMLmlzVmFsaWQoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9MZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaApp
bmRleCA1YzY1YzVjMmNiMDY0YTA4NThlYWRlZjY4YTY2ZDNlYmFkNjJiNmY5Li43ZWQzYTM1NGYx
ZmU1MTkyYjQyN2I2ODA0MGZlN2IzY2M2MTQyMjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgKQEAgLTM0LDI5
ICszNCw5IEBAIGNsYXNzIERhdGE7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdHJ1Y3QgQmFj
a0ZvcndhcmRMaXN0U3RhdGU7Ci1zdHJ1Y3QgRnJhbWVTdGF0ZTsKLXN0cnVjdCBQYWdlU3RhdGU7
CiBzdHJ1Y3QgU2Vzc2lvblN0YXRlOwogCi1jbGFzcyBMZWdhY3lTZXNzaW9uU3RhdGVEZWNvZGVy
IHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBMZWdhY3lTZXNzaW9uU3RhdGVEZWNvZGVyKEFQSTo6
RGF0YSopOwotICAgIH5MZWdhY3lTZXNzaW9uU3RhdGVEZWNvZGVyKCk7Ci0KLSAgICBib29sIGRl
Y29kZVNlc3Npb25TdGF0ZShTZXNzaW9uU3RhdGUmKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBi
b29sIGRlY29kZVNlc3Npb25IaXN0b3J5KENGRGljdGlvbmFyeVJlZiwgQmFja0ZvcndhcmRMaXN0
U3RhdGUmKSBjb25zdDsKLSAgICBib29sIGRlY29kZVYwU2Vzc2lvbkhpc3RvcnkoQ0ZEaWN0aW9u
YXJ5UmVmLCBCYWNrRm9yd2FyZExpc3RTdGF0ZSYpIGNvbnN0OwotICAgIGJvb2wgZGVjb2RlVjFT
ZXNzaW9uSGlzdG9yeShDRkRpY3Rpb25hcnlSZWYsIEJhY2tGb3J3YXJkTGlzdFN0YXRlJikgY29u
c3Q7Ci0KLSAgICBib29sIGRlY29kZVNlc3Npb25IaXN0b3J5RW50cmllcyhDRkFycmF5UmVmLCBW
ZWN0b3I8UGFnZVN0YXRlPiYpIGNvbnN0OwotICAgIGJvb2wgZGVjb2RlU2Vzc2lvbkhpc3RvcnlF
bnRyeShDRkRpY3Rpb25hcnlSZWYsIFBhZ2VTdGF0ZSYpIGNvbnN0OwotICAgIGJvb2wgZGVjb2Rl
U2Vzc2lvbkhpc3RvcnlFbnRyeURhdGEoQ0ZEYXRhUmVmLCBGcmFtZVN0YXRlJikgY29uc3Q7Ci0K
LSAgICBBUEk6OkRhdGEqIG1fZGF0YTsKLX07Citib29sIGRlY29kZUxlZ2FjeVNlc3Npb25TdGF0
ZShjb25zdCBBUEk6OkRhdGEmLCBTZXNzaW9uU3RhdGUmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAK
</data>
<flag name="review"
          id="258260"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>