<?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>165264</bug_id>
          
          <creation_ts>2016-12-01 12:14:04 -0800</creation_ts>
          <short_desc>Removed some unnecessary indirection in code generation</short_desc>
          <delta_ts>2016-12-01 13:23:47 -0800</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>WebKit 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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1255339</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-01 12:14:04 -0800</bug_when>
    <thetext>Removed some unnecessary indirection in code generation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255393</commentid>
    <comment_count>1</comment_count>
      <attachid>295884</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-01 13:15:21 -0800</bug_when>
    <thetext>Created attachment 295884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255399</commentid>
    <comment_count>2</comment_count>
      <attachid>295884</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-12-01 13:21:24 -0800</bug_when>
    <thetext>Comment on attachment 295884
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255407</commentid>
    <comment_count>3</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-01 13:23:47 -0800</bug_when>
    <thetext>Committed r209196: &lt;http://trac.webkit.org/changeset/209196&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295884</attachid>
            <date>2016-12-01 13:15:21 -0800</date>
            <delta_ts>2016-12-01 13:21:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165264-20161201131452.patch</filename>
            <type>text/plain</type>
            <size>17995</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5MTkyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDE2LTEyLTAxICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlZCBzb21lIHVubmVjZXNzYXJ5IGluZGlyZWN0aW9uIGluIGNvZGUgZ2VuZXJhdGlv
bgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1MjY0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUn
cyBubyBuZWVkIHRvIHJvdXRlIHRocm91Z2ggSlNHbG9iYWxPYmplY3Qgd2hlbiBwcm9kdWNpbmcg
Y29kZSAtLQorICAgICAgICBpdCBqdXN0IG1hZGUgdGhlIGNvZGUgaGFyZGVyIHRvIHJlYWQuCisK
KyAgICAgICAgVGhpcyBwYXRjaCBtb3ZlcyBmdW5jdGlvbnMgZnJvbSBKU0dsb2JhbE9iamVjdCB0
byB0aGVpciBzaW5nbGV0b24KKyAgICAgICAgY2FsbCBzaXRlcy4KKworICAgICAgICAqIHJ1bnRp
bWUvQ29kZUNhY2hlLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUNhY2hlOjpnZXRVbmxpbmtlZEV2
YWxDb2RlQmxvY2spOgorICAgICAgICAoSlNDOjpDb2RlQ2FjaGU6OmdldFVubGlua2VkR2xvYmFs
RXZhbENvZGVCbG9jayk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9Db2RlQ2FjaGUuaDoK
KyAgICAgICAgKiBydW50aW1lL0RpcmVjdEV2YWxFeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpT
Qzo6RGlyZWN0RXZhbEV4ZWN1dGFibGU6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9JbmRp
cmVjdEV2YWxFeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpTQzo6SW5kaXJlY3RFdmFsRXhlY3V0
YWJsZTo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVByb2dyYW1Db2RlQmxvY2spOiBEZWxl
dGVkLgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6Y3JlYXRlTG9jYWxFdmFsQ29kZUJs
b2NrKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmNyZWF0ZUdsb2Jh
bEV2YWxDb2RlQmxvY2spOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6
Y3JlYXRlTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvTW9kdWxlUHJvZ3JhbUV4ZWN1
dGFibGUuY3BwOgorICAgICAgICAoSlNDOjpNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRl
KToKKyAgICAgICAgKiBydW50aW1lL1Byb2dyYW1FeGVjdXRhYmxlLmNwcDoKKyAgICAgICAgKEpT
Qzo6UHJvZ3JhbUV4ZWN1dGFibGU6OmluaXRpYWxpemVHbG9iYWxQcm9wZXJ0aWVzKToKKyAgICAg
ICAgKiBydW50aW1lL1Byb2dyYW1FeGVjdXRhYmxlLmg6CisKIDIwMTYtMTEtMzAgIEpGIEJhc3Rp
ZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYkFzc2VtYmx5OiB1cGRhdGUg
YmluYXJ5IGZvcm1hdCB0byAweEQgdmVyc2lvbgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29kZUNhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCShyZXZpc2lvbiAyMDkxOTIpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSw3
ICs4NSw3IEBAIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogQ29kZUNhY2hlOjpnZXQKICAgICBy
ZXR1cm4gZ2V0VW5saW5rZWRHbG9iYWxDb2RlQmxvY2s8VW5saW5rZWRQcm9ncmFtQ29kZUJsb2Nr
Pih2bSwgZXhlY3V0YWJsZSwgc291cmNlLCBzdHJpY3RNb2RlLCBKU1BhcnNlclNjcmlwdE1vZGU6
OkNsYXNzaWMsIGRlYnVnZ2VyTW9kZSwgZXJyb3IsIEV2YWxDb250ZXh0VHlwZTo6Tm9uZSk7CiB9
CiAKLVVubGlua2VkRXZhbENvZGVCbG9jayogQ29kZUNhY2hlOjpnZXRVbmxpbmtlZEdsb2JhbEV2
YWxDb2RlQmxvY2soVk0mIHZtLCBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlKiBleGVjdXRhYmxlLCBj
b25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlLCBE
ZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlLCBQYXJzZXJFcnJvciYgZXJyb3IsIEV2YWxDb250ZXh0
VHlwZSBldmFsQ29udGV4dFR5cGUpCitVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIENvZGVDYWNoZTo6
Z2V0VW5saW5rZWRFdmFsQ29kZUJsb2NrKFZNJiB2bSwgSW5kaXJlY3RFdmFsRXhlY3V0YWJsZSog
ZXhlY3V0YWJsZSwgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBKU1BhcnNlclN0cmljdE1vZGUg
c3RyaWN0TW9kZSwgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImIGVycm9y
LCBFdmFsQ29udGV4dFR5cGUgZXZhbENvbnRleHRUeXBlKQogewogICAgIHJldHVybiBnZXRVbmxp
bmtlZEdsb2JhbENvZGVCbG9jazxVbmxpbmtlZEV2YWxDb2RlQmxvY2s+KHZtLCBleGVjdXRhYmxl
LCBzb3VyY2UsIHN0cmljdE1vZGUsIEpTUGFyc2VyU2NyaXB0TW9kZTo6Q2xhc3NpYywgZGVidWdn
ZXJNb2RlLCBlcnJvciwgZXZhbENvbnRleHRUeXBlKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oCShyZXZpc2lvbiAyMDkxOTIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTk0
LDcgKzE5NCw3IEBAIGNsYXNzIENvZGVDYWNoZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiBnZXRVbmxpbmtlZFBy
b2dyYW1Db2RlQmxvY2soVk0mLCBQcm9ncmFtRXhlY3V0YWJsZSosIGNvbnN0IFNvdXJjZUNvZGUm
LCBKU1BhcnNlclN0cmljdE1vZGUsIERlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImKTsKLSAgICBV
bmxpbmtlZEV2YWxDb2RlQmxvY2sqIGdldFVubGlua2VkR2xvYmFsRXZhbENvZGVCbG9jayhWTSYs
IEluZGlyZWN0RXZhbEV4ZWN1dGFibGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJTdHJp
Y3RNb2RlLCBEZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJiwgRXZhbENvbnRleHRUeXBlKTsKKyAg
ICBVbmxpbmtlZEV2YWxDb2RlQmxvY2sqIGdldFVubGlua2VkRXZhbENvZGVCbG9jayhWTSYsIElu
ZGlyZWN0RXZhbEV4ZWN1dGFibGUqLCBjb25zdCBTb3VyY2VDb2RlJiwgSlNQYXJzZXJTdHJpY3RN
b2RlLCBEZWJ1Z2dlck1vZGUsIFBhcnNlckVycm9yJiwgRXZhbENvbnRleHRUeXBlKTsKICAgICBV
bmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIGdldFVubGlua2VkTW9kdWxlUHJvZ3JhbUNv
ZGVCbG9jayhWTSYsIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlKiwgY29uc3QgU291cmNlQ29kZSYs
IERlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImKTsKICAgICBVbmxpbmtlZEZ1bmN0aW9uRXhlY3V0
YWJsZSogZ2V0VW5saW5rZWRHbG9iYWxGdW5jdGlvbkV4ZWN1dGFibGUoVk0mLCBjb25zdCBJZGVu
dGlmaWVyJiwgY29uc3QgU291cmNlQ29kZSYsIERlYnVnZ2VyTW9kZSwgUGFyc2VyRXJyb3ImKTsK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGlyZWN0RXZhbEV4ZWN1dGFi
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RpcmVj
dEV2YWxFeGVjdXRhYmxlLmNwcAkocmV2aXNpb24gMjA5MTkyKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGlyZWN0RXZhbEV4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw5ICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRpcmVjdEV2
YWxFeGVjdXRhYmxlLmgiCiAKKyNpbmNsdWRlICJDb2RlQ2FjaGUuaCIKKyNpbmNsdWRlICJEZWJ1
Z2dlci5oIgogI2luY2x1ZGUgIkVycm9yLmgiCiAjaW5jbHVkZSAiSGVhcElubGluZXMuaCIKICNp
bmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgorI2luY2x1ZGUgIlBhcnNlckVycm9yLmgiCiAK
IG5hbWVzcGFjZSBKU0MgewogCkBAIC00NiwxMCArNDksMjEgQEAgRGlyZWN0RXZhbEV4ZWN1dGFi
bGUqIERpcmVjdEV2YWxFeGVjdXRhYgogICAgIGF1dG8qIGV4ZWN1dGFibGUgPSBuZXcgKE5vdE51
bGwsIGFsbG9jYXRlQ2VsbDxEaXJlY3RFdmFsRXhlY3V0YWJsZT4oKmV4ZWMtPmhlYXAoKSkpIERp
cmVjdEV2YWxFeGVjdXRhYmxlKGV4ZWMsIHNvdXJjZSwgaXNJblN0cmljdENvbnRleHQsIGRlcml2
ZWRDb250ZXh0VHlwZSwgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgZXZhbENvbnRleHRUeXBlKTsK
ICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbih2bSk7CiAKLSAgICBVbmxpbmtlZEV2YWxD
b2RlQmxvY2sqIHVubGlua2VkRXZhbENvZGUgPSBnbG9iYWxPYmplY3QtPmNyZWF0ZUxvY2FsRXZh
bENvZGVCbG9jayhleGVjLCBleGVjdXRhYmxlLCB2YXJpYWJsZXNVbmRlclREWik7Ci0gICAgQVNT
RVJUKCEhc2NvcGUuZXhjZXB0aW9uKCkgPT0gIXVubGlua2VkRXZhbENvZGUpOwotICAgIGlmICgh
dW5saW5rZWRFdmFsQ29kZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgUGFyc2VyRXJyb3IgZXJy
b3I7CisgICAgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUgPSBleGVjdXRhYmxlLT5pc1N0
cmljdE1vZGUoKSA/IEpTUGFyc2VyU3RyaWN0TW9kZTo6U3RyaWN0IDogSlNQYXJzZXJTdHJpY3RN
b2RlOjpOb3RTdHJpY3Q7CisgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSA9IGdsb2JhbE9i
amVjdC0+aGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpID8gRGVidWdnZXJPbiA6IERlYnVnZ2VyT2Zm
OworCisgICAgLy8gV2UgZG9uJ3QgYm90aGVyIHdpdGggQ29kZUNhY2hlIGhlcmUgYmVjYXVzZSBk
aXJlY3QgZXZhbCB1c2VzIGEgc3BlY2lhbGl6ZWQgRXZhbENvZGVDYWNoZS4KKyAgICBVbmxpbmtl
ZEV2YWxDb2RlQmxvY2sqIHVubGlua2VkRXZhbENvZGUgPSBnZW5lcmF0ZVVubGlua2VkQ29kZUJs
b2NrPFVubGlua2VkRXZhbENvZGVCbG9jaz4oCisgICAgICAgIHZtLCBleGVjdXRhYmxlLCBleGVj
dXRhYmxlLT5zb3VyY2UoKSwgc3RyaWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlOjpDbGFzc2lj
LCBkZWJ1Z2dlck1vZGUsIGVycm9yLCBldmFsQ29udGV4dFR5cGUsIHZhcmlhYmxlc1VuZGVyVERa
KTsKKworICAgIGlmIChnbG9iYWxPYmplY3QtPmhhc0RlYnVnZ2VyKCkpCisgICAgICAgIGdsb2Jh
bE9iamVjdC0+ZGVidWdnZXIoKS0+c291cmNlUGFyc2VkKGV4ZWMsIGV4ZWN1dGFibGUtPnNvdXJj
ZSgpLnByb3ZpZGVyKCksIGVycm9yLmxpbmUoKSwgZXJyb3IubWVzc2FnZSgpKTsKKworICAgIGlm
IChlcnJvci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgdGhyb3dWTUVycm9yKGV4ZWMsIHNjb3BlLCBl
cnJvci50b0Vycm9yT2JqZWN0KGdsb2JhbE9iamVjdCwgZXhlY3V0YWJsZS0+c291cmNlKCkpKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgZXhlY3V0YWJsZS0+bV91bmxp
bmtlZEV2YWxDb2RlQmxvY2suc2V0KHZtLCBleGVjdXRhYmxlLCB1bmxpbmtlZEV2YWxDb2RlKTsK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5kaXJlY3RFdmFsRXhlY3V0
YWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5k
aXJlY3RFdmFsRXhlY3V0YWJsZS5jcHAJKHJldmlzaW9uIDIwOTE5MikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0luZGlyZWN0RXZhbEV4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw5ICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIklu
ZGlyZWN0RXZhbEV4ZWN1dGFibGUuaCIKIAorI2luY2x1ZGUgIkNvZGVDYWNoZS5oIgorI2luY2x1
ZGUgIkRlYnVnZ2VyLmgiCiAjaW5jbHVkZSAiRXJyb3IuaCIKICNpbmNsdWRlICJIZWFwSW5saW5l
cy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiUGFyc2VyRXJy
b3IuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiAKQEAgLTQ2LDEwICs0OSwyMCBAQCBJbmRpcmVjdEV2
YWxFeGVjdXRhYmxlKiBJbmRpcmVjdEV2YWxFeGVjCiAgICAgYXV0byogZXhlY3V0YWJsZSA9IG5l
dyAoTm90TnVsbCwgYWxsb2NhdGVDZWxsPEluZGlyZWN0RXZhbEV4ZWN1dGFibGU+KCpleGVjLT5o
ZWFwKCkpKSBJbmRpcmVjdEV2YWxFeGVjdXRhYmxlKGV4ZWMsIHNvdXJjZSwgaXNJblN0cmljdENv
bnRleHQsIGRlcml2ZWRDb250ZXh0VHlwZSwgaXNBcnJvd0Z1bmN0aW9uQ29udGV4dCwgZXZhbENv
bnRleHRUeXBlKTsKICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbih2bSk7CiAKLSAgICBV
bmxpbmtlZEV2YWxDb2RlQmxvY2sqIHVubGlua2VkRXZhbENvZGUgPSBnbG9iYWxPYmplY3QtPmNy
ZWF0ZUdsb2JhbEV2YWxDb2RlQmxvY2soZXhlYywgZXhlY3V0YWJsZSk7Ci0gICAgQVNTRVJUKCEh
c2NvcGUuZXhjZXB0aW9uKCkgPT0gIXVubGlua2VkRXZhbENvZGUpOwotICAgIGlmICghdW5saW5r
ZWRFdmFsQ29kZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgUGFyc2VyRXJyb3IgZXJyb3I7Cisg
ICAgSlNQYXJzZXJTdHJpY3RNb2RlIHN0cmljdE1vZGUgPSBleGVjdXRhYmxlLT5pc1N0cmljdE1v
ZGUoKSA/IEpTUGFyc2VyU3RyaWN0TW9kZTo6U3RyaWN0IDogSlNQYXJzZXJTdHJpY3RNb2RlOjpO
b3RTdHJpY3Q7CisgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2VyTW9kZSA9IGdsb2JhbE9iamVjdC0+
aGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpID8gRGVidWdnZXJPbiA6IERlYnVnZ2VyT2ZmOworICAg
IAorICAgIFVubGlua2VkRXZhbENvZGVCbG9jayogdW5saW5rZWRFdmFsQ29kZSA9IHZtLmNvZGVD
YWNoZSgpLT5nZXRVbmxpbmtlZEV2YWxDb2RlQmxvY2soCisgICAgICAgIHZtLCBleGVjdXRhYmxl
LCBleGVjdXRhYmxlLT5zb3VyY2UoKSwgc3RyaWN0TW9kZSwgZGVidWdnZXJNb2RlLCBlcnJvciwg
ZXZhbENvbnRleHRUeXBlKTsKKworICAgIGlmIChnbG9iYWxPYmplY3QtPmhhc0RlYnVnZ2VyKCkp
CisgICAgICAgIGdsb2JhbE9iamVjdC0+ZGVidWdnZXIoKS0+c291cmNlUGFyc2VkKGV4ZWMsIGV4
ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVyKCksIGVycm9yLmxpbmUoKSwgZXJyb3IubWVzc2Fn
ZSgpKTsKKworICAgIGlmIChlcnJvci5pc1ZhbGlkKCkpIHsKKyAgICAgICAgdGhyb3dWTUVycm9y
KGV4ZWMsIHNjb3BlLCBlcnJvci50b0Vycm9yT2JqZWN0KGdsb2JhbE9iamVjdCwgZXhlY3V0YWJs
ZS0+c291cmNlKCkpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQogCiAgICAgZXhl
Y3V0YWJsZS0+bV91bmxpbmtlZEV2YWxDb2RlQmxvY2suc2V0KHZtLCBleGVjdXRhYmxlLCB1bmxp
bmtlZEV2YWxDb2RlKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0LmNwcAkocmV2aXNpb24gMjA5MTkyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzMyLDk2ICsxMzMyLDYgQEAgdm9pZCBzbG93VmFsaWRhdGVDZWxsKEpTR2xvYmFsT2JqZWN0KiBn
bAogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoZ2xvYmFsT2JqZWN0LCBKU0dsb2JhbE9i
amVjdDo6aW5mbygpKTsKIH0KIAotVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiBKU0dsb2JhbE9i
amVjdDo6Y3JlYXRlUHJvZ3JhbUNvZGVCbG9jayhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgUHJvZ3Jh
bUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUsIEpTT2JqZWN0KiogZXhjZXB0aW9uKQotewotICAgIFBh
cnNlckVycm9yIGVycm9yOwotICAgIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlID0gZXhl
Y3V0YWJsZS0+aXNTdHJpY3RNb2RlKCkgPyBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdCA6IEpT
UGFyc2VyU3RyaWN0TW9kZTo6Tm90U3RyaWN0OwotICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1v
ZGUgPSBoYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9uIDogRGVidWdnZXJPZmY7
Ci0gICAgVW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHZtKCku
Y29kZUNhY2hlKCktPmdldFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jaygKLSAgICAgICAgdm0oKSwg
ZXhlY3V0YWJsZSwgZXhlY3V0YWJsZS0+c291cmNlKCksIHN0cmljdE1vZGUsIAotICAgICAgICBk
ZWJ1Z2dlck1vZGUsIGVycm9yKTsKLQotICAgIGlmIChoYXNEZWJ1Z2dlcigpKQotICAgICAgICBk
ZWJ1Z2dlcigpLT5zb3VyY2VQYXJzZWQoY2FsbEZyYW1lLCBleGVjdXRhYmxlLT5zb3VyY2UoKS5w
cm92aWRlcigpLCBlcnJvci5saW5lKCksIGVycm9yLm1lc3NhZ2UoKSk7Ci0KLSAgICBpZiAoZXJy
b3IuaXNWYWxpZCgpKSB7Ci0gICAgICAgICpleGNlcHRpb24gPSBlcnJvci50b0Vycm9yT2JqZWN0
KHRoaXMsIGV4ZWN1dGFibGUtPnNvdXJjZSgpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotICAgIAotICAgIHJldHVybiB1bmxpbmtlZENvZGVCbG9jazsKLX0KLQotVW5saW5rZWRF
dmFsQ29kZUJsb2NrKiBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlTG9jYWxFdmFsQ29kZUJsb2NrKENh
bGxGcmFtZSogY2FsbEZyYW1lLCBEaXJlY3RFdmFsRXhlY3V0YWJsZSogZXhlY3V0YWJsZSwgY29u
c3QgVmFyaWFibGVFbnZpcm9ubWVudCogdmFyaWFibGVzVW5kZXJURFopCi17Ci0gICAgVk0mIHZt
ID0gdGhpcy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
Ci0KLSAgICBQYXJzZXJFcnJvciBlcnJvcjsKLSAgICBKU1BhcnNlclN0cmljdE1vZGUgc3RyaWN0
TW9kZSA9IGV4ZWN1dGFibGUtPmlzU3RyaWN0TW9kZSgpID8gSlNQYXJzZXJTdHJpY3RNb2RlOjpT
dHJpY3QgOiBKU1BhcnNlclN0cmljdE1vZGU6Ok5vdFN0cmljdDsKLSAgICBEZWJ1Z2dlck1vZGUg
ZGVidWdnZXJNb2RlID0gaGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpID8gRGVidWdnZXJPbiA6IERl
YnVnZ2VyT2ZmOwotICAgIEV2YWxDb250ZXh0VHlwZSBldmFsQ29udGV4dFR5cGUgPSBleGVjdXRh
YmxlLT5leGVjdXRhYmxlSW5mbygpLmV2YWxDb250ZXh0VHlwZSgpOwotCi0gICAgLy8gV2UgZG9u
J3QgYm90aGVyIHdpdGggQ29kZUNhY2hlIGhlcmUgYmVjYXVzZSBsb2NhbCBldmFsIHVzZXMgYSBz
cGVjaWFsaXplZCBFdmFsQ29kZUNhY2hlLgotICAgIFVubGlua2VkRXZhbENvZGVCbG9jayogdW5s
aW5rZWRDb2RlQmxvY2sgPSBnZW5lcmF0ZVVubGlua2VkQ29kZUJsb2NrPFVubGlua2VkRXZhbENv
ZGVCbG9jaz4oCi0gICAgICAgIHZtLCBleGVjdXRhYmxlLCBleGVjdXRhYmxlLT5zb3VyY2UoKSwg
c3RyaWN0TW9kZSwgSlNQYXJzZXJTY3JpcHRNb2RlOjpDbGFzc2ljLCBkZWJ1Z2dlck1vZGUsIGVy
cm9yLCBldmFsQ29udGV4dFR5cGUsIHZhcmlhYmxlc1VuZGVyVERaKTsKLQotICAgIGlmIChoYXNE
ZWJ1Z2dlcigpKQotICAgICAgICBkZWJ1Z2dlcigpLT5zb3VyY2VQYXJzZWQoY2FsbEZyYW1lLCBl
eGVjdXRhYmxlLT5zb3VyY2UoKS5wcm92aWRlcigpLCBlcnJvci5saW5lKCksIGVycm9yLm1lc3Nh
Z2UoKSk7Ci0KLSAgICBpZiAoZXJyb3IuaXNWYWxpZCgpKSB7Ci0gICAgICAgIHRocm93Vk1FcnJv
cihjYWxsRnJhbWUsIHNjb3BlLCBlcnJvci50b0Vycm9yT2JqZWN0KHRoaXMsIGV4ZWN1dGFibGUt
PnNvdXJjZSgpKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIHJldHVy
biB1bmxpbmtlZENvZGVCbG9jazsKLX0KLQotVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBKU0dsb2Jh
bE9iamVjdDo6Y3JlYXRlR2xvYmFsRXZhbENvZGVCbG9jayhDYWxsRnJhbWUqIGNhbGxGcmFtZSwg
SW5kaXJlY3RFdmFsRXhlY3V0YWJsZSogZXhlY3V0YWJsZSkKLXsKLSAgICBWTSYgdm0gPSB0aGlz
LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAg
IFBhcnNlckVycm9yIGVycm9yOwotICAgIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlID0g
ZXhlY3V0YWJsZS0+aXNTdHJpY3RNb2RlKCkgPyBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdCA6
IEpTUGFyc2VyU3RyaWN0TW9kZTo6Tm90U3RyaWN0OwotICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dl
ck1vZGUgPSBoYXNJbnRlcmFjdGl2ZURlYnVnZ2VyKCkgPyBEZWJ1Z2dlck9uIDogRGVidWdnZXJP
ZmY7Ci0gICAgRXZhbENvbnRleHRUeXBlIGV2YWxDb250ZXh0VHlwZSA9IGV4ZWN1dGFibGUtPmV4
ZWN1dGFibGVJbmZvKCkuZXZhbENvbnRleHRUeXBlKCk7Ci0gICAgCi0gICAgVW5saW5rZWRFdmFs
Q29kZUJsb2NrKiB1bmxpbmtlZENvZGVCbG9jayA9IHZtLmNvZGVDYWNoZSgpLT5nZXRVbmxpbmtl
ZEdsb2JhbEV2YWxDb2RlQmxvY2soCi0gICAgICAgIHZtLCBleGVjdXRhYmxlLCBleGVjdXRhYmxl
LT5zb3VyY2UoKSwgc3RyaWN0TW9kZSwgZGVidWdnZXJNb2RlLCBlcnJvciwgZXZhbENvbnRleHRU
eXBlKTsKLQotICAgIGlmIChoYXNEZWJ1Z2dlcigpKQotICAgICAgICBkZWJ1Z2dlcigpLT5zb3Vy
Y2VQYXJzZWQoY2FsbEZyYW1lLCBleGVjdXRhYmxlLT5zb3VyY2UoKS5wcm92aWRlcigpLCBlcnJv
ci5saW5lKCksIGVycm9yLm1lc3NhZ2UoKSk7Ci0KLSAgICBpZiAoZXJyb3IuaXNWYWxpZCgpKSB7
Ci0gICAgICAgIHRocm93Vk1FcnJvcihjYWxsRnJhbWUsIHNjb3BlLCBlcnJvci50b0Vycm9yT2Jq
ZWN0KHRoaXMsIGV4ZWN1dGFibGUtPnNvdXJjZSgpKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIH0KLQotICAgIHJldHVybiB1bmxpbmtlZENvZGVCbG9jazsKLX0KLQotVW5saW5rZWRN
b2R1bGVQcm9ncmFtQ29kZUJsb2NrKiBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlTW9kdWxlUHJvZ3Jh
bUNvZGVCbG9jayhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUq
IGV4ZWN1dGFibGUpCi17Ci0gICAgVk0mIHZtID0gdGhpcy0+dm0oKTsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBQYXJzZXJFcnJvciBlcnJvcjsKLSAg
ICBEZWJ1Z2dlck1vZGUgZGVidWdnZXJNb2RlID0gaGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpID8g
RGVidWdnZXJPbiA6IERlYnVnZ2VyT2ZmOwotICAgIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVC
bG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSB2bS5jb2RlQ2FjaGUoKS0+Z2V0VW5saW5rZWRNb2R1
bGVQcm9ncmFtQ29kZUJsb2NrKAotICAgICAgICB2bSwgZXhlY3V0YWJsZSwgZXhlY3V0YWJsZS0+
c291cmNlKCksIGRlYnVnZ2VyTW9kZSwgZXJyb3IpOwotCi0gICAgaWYgKGhhc0RlYnVnZ2VyKCkp
Ci0gICAgICAgIGRlYnVnZ2VyKCktPnNvdXJjZVBhcnNlZChjYWxsRnJhbWUsIGV4ZWN1dGFibGUt
PnNvdXJjZSgpLnByb3ZpZGVyKCksIGVycm9yLmxpbmUoKSwgZXJyb3IubWVzc2FnZSgpKTsKLQot
ICAgIGlmIChlcnJvci5pc1ZhbGlkKCkpIHsKLSAgICAgICAgdGhyb3dWTUVycm9yKGNhbGxGcmFt
ZSwgc2NvcGUsIGVycm9yLnRvRXJyb3JPYmplY3QodGhpcywgZXhlY3V0YWJsZS0+c291cmNlKCkp
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0dXJuIHVubGlua2Vk
Q29kZUJsb2NrOwotfQotCiB2b2lkIEpTR2xvYmFsT2JqZWN0OjpzZXRSZW1vdGVEZWJ1Z2dpbmdF
bmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RPUikKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAko
cmV2aXNpb24gMjA5MTkyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtODM0LDExICs4MzQsNiBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgd2Vha1JhbmRvbUludGVnZXIoKSB7IHJldHVybiBtX3dlYWtSYW5kb20uZ2V0
VWludDMyKCk7IH0KICAgICBXZWFrUmFuZG9tJiB3ZWFrUmFuZG9tKCkgeyByZXR1cm4gbV93ZWFr
UmFuZG9tOyB9CiAKLSAgICBVbmxpbmtlZFByb2dyYW1Db2RlQmxvY2sqIGNyZWF0ZVByb2dyYW1D
b2RlQmxvY2soQ2FsbEZyYW1lKiwgUHJvZ3JhbUV4ZWN1dGFibGUqLCBKU09iamVjdCoqIGV4Y2Vw
dGlvbik7Ci0gICAgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBjcmVhdGVMb2NhbEV2YWxDb2RlQmxv
Y2soQ2FsbEZyYW1lKiwgRGlyZWN0RXZhbEV4ZWN1dGFibGUqLCBjb25zdCBWYXJpYWJsZUVudmly
b25tZW50Kik7Ci0gICAgVW5saW5rZWRFdmFsQ29kZUJsb2NrKiBjcmVhdGVHbG9iYWxFdmFsQ29k
ZUJsb2NrKENhbGxGcmFtZSosIEluZGlyZWN0RXZhbEV4ZWN1dGFibGUqKTsKLSAgICBVbmxpbmtl
ZE1vZHVsZVByb2dyYW1Db2RlQmxvY2sqIGNyZWF0ZU1vZHVsZVByb2dyYW1Db2RlQmxvY2soQ2Fs
bEZyYW1lKiwgTW9kdWxlUHJvZ3JhbUV4ZWN1dGFibGUqKTsKLQogICAgIGJvb2wgbmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MoKSBjb25zdCB7IHJldHVybiBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
OyB9CiAKIHByb3RlY3RlZDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01v
ZHVsZVByb2dyYW1FeGVjdXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Nb2R1bGVQcm9ncmFtRXhlY3V0YWJsZS5jcHAJKHJldmlzaW9uIDIwOTE5
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZVByb2dyYW1FeGVjdXRh
YmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQmF0
Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNs
dWRlICJDb2RlQ2FjaGUuaCIKICNpbmNsdWRlICJEZWJ1Z2dlci5oIgogI2luY2x1ZGUgIkpJVC5o
IgogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKQEAgLTUzLDEzICs1NCwyNiBAQCBNb2R1bGVQcm9n
cmFtRXhlY3V0YWJsZTo6TW9kdWxlUHJvZ3JhbUV4CiAKIE1vZHVsZVByb2dyYW1FeGVjdXRhYmxl
KiBNb2R1bGVQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
U291cmNlQ29kZSYgc291cmNlKQogeworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgYXV0
byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCiAgICAgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKTsKICAgICBNb2R1bGVQ
cm9ncmFtRXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoTm90TnVsbCwgYWxsb2NhdGVDZWxs
PE1vZHVsZVByb2dyYW1FeGVjdXRhYmxlPigqZXhlYy0+aGVhcCgpKSkgTW9kdWxlUHJvZ3JhbUV4
ZWN1dGFibGUoZXhlYywgc291cmNlKTsKICAgICBleGVjdXRhYmxlLT5maW5pc2hDcmVhdGlvbihl
eGVjLT52bSgpKTsKIAotICAgIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogdW5saW5r
ZWRNb2R1bGVQcm9ncmFtQ29kZSA9IGdsb2JhbE9iamVjdC0+Y3JlYXRlTW9kdWxlUHJvZ3JhbUNv
ZGVCbG9jayhleGVjLCBleGVjdXRhYmxlKTsKLSAgICBpZiAoIXVubGlua2VkTW9kdWxlUHJvZ3Jh
bUNvZGUpCisgICAgUGFyc2VyRXJyb3IgZXJyb3I7CisgICAgRGVidWdnZXJNb2RlIGRlYnVnZ2Vy
TW9kZSA9IGdsb2JhbE9iamVjdC0+aGFzSW50ZXJhY3RpdmVEZWJ1Z2dlcigpID8gRGVidWdnZXJP
biA6IERlYnVnZ2VyT2ZmOworICAgIFVubGlua2VkTW9kdWxlUHJvZ3JhbUNvZGVCbG9jayogdW5s
aW5rZWRNb2R1bGVQcm9ncmFtQ29kZSA9IHZtLmNvZGVDYWNoZSgpLT5nZXRVbmxpbmtlZE1vZHVs
ZVByb2dyYW1Db2RlQmxvY2soCisgICAgICAgIHZtLCBleGVjdXRhYmxlLCBleGVjdXRhYmxlLT5z
b3VyY2UoKSwgZGVidWdnZXJNb2RlLCBlcnJvcik7CisKKyAgICBpZiAoZ2xvYmFsT2JqZWN0LT5o
YXNEZWJ1Z2dlcigpKQorICAgICAgICBnbG9iYWxPYmplY3QtPmRlYnVnZ2VyKCktPnNvdXJjZVBh
cnNlZChleGVjLCBleGVjdXRhYmxlLT5zb3VyY2UoKS5wcm92aWRlcigpLCBlcnJvci5saW5lKCks
IGVycm9yLm1lc3NhZ2UoKSk7CisKKyAgICBpZiAoZXJyb3IuaXNWYWxpZCgpKSB7CisgICAgICAg
IHRocm93Vk1FcnJvcihleGVjLCBzY29wZSwgZXJyb3IudG9FcnJvck9iamVjdChnbG9iYWxPYmpl
Y3QsIGV4ZWN1dGFibGUtPnNvdXJjZSgpKSk7CiAgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKwogICAgIGV4ZWN1dGFibGUtPm1fdW5saW5rZWRNb2R1bGVQcm9ncmFtQ29kZUJsb2NrLnNl
dChleGVjLT52bSgpLCBleGVjdXRhYmxlLCB1bmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlKTsKIAog
ICAgIGV4ZWN1dGFibGUtPm1fbW9kdWxlRW52aXJvbm1lbnRTeW1ib2xUYWJsZS5zZXQoZXhlYy0+
dm0oKSwgZXhlY3V0YWJsZSwganNDYXN0PFN5bWJvbFRhYmxlKj4odW5saW5rZWRNb2R1bGVQcm9n
cmFtQ29kZS0+Y29uc3RhbnRSZWdpc3Rlcih1bmxpbmtlZE1vZHVsZVByb2dyYW1Db2RlLT5tb2R1
bGVFbnZpcm9ubWVudFN5bWJvbFRhYmxlQ29uc3RhbnRSZWdpc3Rlck9mZnNldCgpKS5nZXQoKSkt
PmNsb25lU2NvcGVQYXJ0KGV4ZWMtPnZtKCkpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1Byb2dyYW1FeGVjdXRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Qcm9ncmFtRXhlY3V0YWJsZS5jcHAJKHJldmlzaW9uIDIwOTE5
MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb2dyYW1FeGVjdXRhYmxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQmF0Y2hlZFRy
YW5zaXRpb25PcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKKyNpbmNsdWRlICJD
b2RlQ2FjaGUuaCIKICNpbmNsdWRlICJEZWJ1Z2dlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbi5o
IgogI2luY2x1ZGUgIkpJVC5oIgpAQCAtNzksNiArODAsMTkgQEAgSlNPYmplY3QqIFByb2dyYW1F
eGVjdXRhYmxlOjppbml0aWFsaXplRwogICAgIFJFTEVBU0VfQVNTRVJUKGdsb2JhbE9iamVjdCk7
CiAgICAgQVNTRVJUKCZnbG9iYWxPYmplY3QtPnZtKCkgPT0gJnZtKTsKIAorICAgIFBhcnNlckVy
cm9yIGVycm9yOworICAgIEpTUGFyc2VyU3RyaWN0TW9kZSBzdHJpY3RNb2RlID0gaXNTdHJpY3RN
b2RlKCkgPyBKU1BhcnNlclN0cmljdE1vZGU6OlN0cmljdCA6IEpTUGFyc2VyU3RyaWN0TW9kZTo6
Tm90U3RyaWN0OworICAgIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUgPSBnbG9iYWxPYmplY3Qt
Pmhhc0ludGVyYWN0aXZlRGVidWdnZXIoKSA/IERlYnVnZ2VyT24gOiBEZWJ1Z2dlck9mZjsKKwor
ICAgIFVubGlua2VkUHJvZ3JhbUNvZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSB2bS5jb2Rl
Q2FjaGUoKS0+Z2V0VW5saW5rZWRQcm9ncmFtQ29kZUJsb2NrKAorICAgICAgICB2bSwgdGhpcywg
c291cmNlKCksIHN0cmljdE1vZGUsIGRlYnVnZ2VyTW9kZSwgZXJyb3IpOworCisgICAgaWYgKGds
b2JhbE9iamVjdC0+aGFzRGVidWdnZXIoKSkKKyAgICAgICAgZ2xvYmFsT2JqZWN0LT5kZWJ1Z2dl
cigpLT5zb3VyY2VQYXJzZWQoY2FsbEZyYW1lLCBzb3VyY2UoKS5wcm92aWRlcigpLCBlcnJvci5s
aW5lKCksIGVycm9yLm1lc3NhZ2UoKSk7CisKKyAgICBpZiAoZXJyb3IuaXNWYWxpZCgpKQorICAg
ICAgICByZXR1cm4gZXJyb3IudG9FcnJvck9iamVjdChnbG9iYWxPYmplY3QsIHNvdXJjZSgpKTsK
KwogICAgIEpTVmFsdWUgbmV4dFByb3RvdHlwZSA9IGdsb2JhbE9iamVjdC0+Z2V0UHJvdG90eXBl
RGlyZWN0KCk7CiAgICAgd2hpbGUgKG5leHRQcm90b3R5cGUgJiYgbmV4dFByb3RvdHlwZS5pc09i
amVjdCgpKSB7CiAgICAgICAgIGlmIChVTkxJS0VMWShhc09iamVjdChuZXh0UHJvdG90eXBlKS0+
dHlwZSgpID09IFByb3h5T2JqZWN0VHlwZSkpIHsKQEAgLTg4LDExICsxMDIsNiBAQCBKU09iamVj
dCogUHJvZ3JhbUV4ZWN1dGFibGU6OmluaXRpYWxpemVHCiAgICAgICAgIG5leHRQcm90b3R5cGUg
PSBhc09iamVjdChuZXh0UHJvdG90eXBlKS0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7CiAgICAgfQog
ICAgIAotICAgIEpTT2JqZWN0KiBleGNlcHRpb24gPSBudWxscHRyOwotICAgIFVubGlua2VkUHJv
Z3JhbUNvZGVCbG9jayogdW5saW5rZWRDb2RlQmxvY2sgPSBnbG9iYWxPYmplY3QtPmNyZWF0ZVBy
b2dyYW1Db2RlQmxvY2soY2FsbEZyYW1lLCB0aGlzLCAmZXhjZXB0aW9uKTsKLSAgICBpZiAoVU5M
SUtFTFkoZXhjZXB0aW9uKSkKLSAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbjsKLQogICAgIEpTR2xv
YmFsTGV4aWNhbEVudmlyb25tZW50KiBnbG9iYWxMZXhpY2FsRW52aXJvbm1lbnQgPSBnbG9iYWxP
YmplY3QtPmdsb2JhbExleGljYWxFbnZpcm9ubWVudCgpOwogICAgIGNvbnN0IFZhcmlhYmxlRW52
aXJvbm1lbnQmIHZhcmlhYmxlRGVjbGFyYXRpb25zID0gdW5saW5rZWRDb2RlQmxvY2stPnZhcmlh
YmxlRGVjbGFyYXRpb25zKCk7CiAgICAgY29uc3QgVmFyaWFibGVFbnZpcm9ubWVudCYgbGV4aWNh
bERlY2xhcmF0aW9ucyA9IHVubGlua2VkQ29kZUJsb2NrLT5sZXhpY2FsRGVjbGFyYXRpb25zKCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9ncmFtRXhlY3V0YWJsZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb2dyYW1FeGVj
dXRhYmxlLmgJKHJldmlzaW9uIDIwOTE5MikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1Byb2dyYW1FeGVjdXRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDYgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICB9CiAKLQogICAgIEpTT2Jq
ZWN0KiBpbml0aWFsaXplR2xvYmFsUHJvcGVydGllcyhWTSYsIENhbGxGcmFtZSosIEpTU2NvcGUq
KTsKIAogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7Cg==
</data>
<flag name="review"
          id="318407"
          type_id="1"
          status="+"
          setter="keith_miller"
    />
          </attachment>
      

    </bug>

</bugzilla>