-
Bug
-
Resolution: Fixed
-
P4
-
None
-
7u51
-
x86_64
-
windows_7
FULL PRODUCT VERSION :
1.7.0_45
A DESCRIPTION OF THE PROBLEM :
xml 1.1 sax parsing can corrupt data for files over 8192 bytes long.
This applies to the version of xerces that is bundled in the jdk. Upgrading to a newer xerces version (from an external source) fixes the problem
A description of the problem can also be found here: https://community.oracle.com/thread/1626288
The "additional regression information" field of this issue contains a base64 encoded version of the "ivy.xml" file used in the sample code.
ADDITIONAL REGRESSION INFORMATION:
PD94bWwgdmVyc2lvbj0iMS4xIiBlbmNvZGluZz0iVVRGLTgiPz4KPGl2eS1tb2R1bGUgdmVyc2lvbj0iMi4wIiB4bWxuczptPSJodHRwOi8vYW50LmFwYWNoZS5vcmcvaXZ5L21hdmVuIj4KICA8aW5mbyBvcmdhbmlzYXRpb249ImNvbS54eS5kcmEiIG1vZHVsZT0icmFkaW9hcmtpdi1pbmZyYXN0cnVjdHVyZSIgcmV2aXNpb249IjAuMi4yNS41IiBzdGF0dXM9InJlbGVhc2UiIHB1YmxpY2F0aW9uPSIxOTcwMDEwMTAwNTk1OSI+CiAgICA8ZGVzY3JpcHRpb24gaG9tZXBhZ2U9IiIvPgogIDwvaW5mbz4KICA8Y29uZmlndXJhdGlvbnM+CiAgICA8Y29uZiBuYW1lPSJkZWZhdWx0IiB2aXNpYmlsaXR5PSJwdWJsaWMiIGRlc2NyaXB0aW9uPSJydW50aW1lIGRlcGVuZGVuY2llcyBhbmQgbWFzdGVyIGFydGlmYWN0IGNhbiBiZSB1c2VkIHdpdGggdGhpcyBjb25mIiBleHRlbmRzPSJydW50aW1lLG1hc3RlciIvPgogICAgPGNvbmYgbmFtZT0ibWFzdGVyIiB2aXNpYmlsaXR5PSJwdWJsaWMiIGRlc2NyaXB0aW9uPSJjb250YWlucyBvbmx5IHRoZSBhcnRpZmFjdCBwdWJsaXNoZWQgYnkgdGhpcyBtb2R1bGUgaXRzZWxmLCB3aXRoIG5vIHRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzIi8+CiAgICA8Y29uZiBuYW1lPSJjb21waWxlIiB2aXNpYmlsaXR5PSJwdWJsaWMiIGRlc2NyaXB0aW9uPSJ0aGlzIGlzIHRoZSBkZWZhdWx0IHNjb3BlLCB1c2VkIGlmIG5vbmUgaXMgc3BlY2lmaWVkLiBDb21waWxlIGRlcGVuZGVuY2llcyBhcmUgYXZhaWxhYmxlIGluIGFsbCBjbGFzc3BhdGhzLiIvPgogICAgPGNvbmYgbmFtZT0icHJvdmlkZWQiIHZpc2liaWxpdHk9InB1YmxpYyIgZGVzY3JpcHRpb249InRoaXMgaXMgbXVjaCBsaWtlIGNvbXBpbGUsIGJ1dCBpbmRpY2F0ZXMgeW91IGV4cGVjdCB0aGUgSkRLIG9yIGEgY29udGFpbmVyIHRvIHByb3ZpZGUgaXQuIEl0IGlzIG9ubHkgYXZhaWxhYmxlIG9uIHRoZSBjb21waWxhdGlvbiBjbGFzc3BhdGgsIGFuZCBpcyBub3QgdHJhbnNpdGl2ZS4iLz4KICAgIDxjb25mIG5hbWU9InJ1bnRpbWUiIHZpc2liaWxpdHk9InB1YmxpYyIgZGVzY3JpcHRpb249InRoaXMgc2NvcGUgaW5kaWNhdGVzIHRoYXQgdGhlIGRlcGVuZGVuY3kgaXMgbm90IHJlcXVpcmVkIGZvciBjb21waWxhdGlvbiwgYnV0IGlzIGZvciBleGVjdXRpb24uIEl0IGlzIGluIHRoZSBydW50aW1lIGFuZCB0ZXN0IGNsYXNzcGF0aHMsIGJ1dCBub3QgdGhlIGNvbXBpbGUgY2xhc3NwYXRoLiIgZXh0ZW5kcz0iY29tcGlsZSIvPgogICAgPGNvbmYgbmFtZT0idGVzdCIgdmlzaWJpbGl0eT0icHJpdmF0ZSIgZGVzY3JpcHRpb249InRoaXMgc2NvcGUgaW5kaWNhdGVzIHRoYXQgdGhlIGRlcGVuZGVuY3kgaXMgbm90IHJlcXVpcmVkIGZvciBub3JtYWwgdXNlIG9mIHRoZSBhcHBsaWNhdGlvbiwgYW5kIGlzIG9ubHkgYXZhaWxhYmxlIGZvciB0aGUgdGVzdCBjb21waWxhdGlvbiBhbmQgZXhlY3V0aW9uIHBoYXNlcy4iIGV4dGVuZHM9InJ1bnRpbWUiLz4KICAgIDxjb25mIG5hbWU9InN5c3RlbSIgdmlzaWJpbGl0eT0icHVibGljIiBkZXNjcmlwdGlvbj0idGhpcyBzY29wZSBpcyBzaW1pbGFyIHRvIHByb3ZpZGVkIGV4Y2VwdCB0aGF0IHlvdSBoYXZlIHRvIHByb3ZpZGUgdGhlIEpBUiB3aGljaCBjb250YWlucyBpdCBleHBsaWNpdGx5LiBUaGUgYXJ0aWZhY3QgaXMgYWx3YXlzIGF2YWlsYWJsZSBhbmQgaXMgbm90IGxvb2tlZCB1cCBpbiBhIHJlcG9zaXRvcnkuIi8+CiAgICA8Y29uZiBuYW1lPSJzb3VyY2VzIiB2aXNpYmlsaXR5PSJwdWJsaWMiIGRlc2NyaXB0aW9uPSJ0aGlzIGNvbmZpZ3VyYXRpb24gY29udGFpbnMgdGhlIHNvdXJjZSBhcnRpZmFjdCBvZiB0aGlzIG1vZHVsZSwgaWYgYW55LiIvPgogICAgPGNvbmYgbmFtZT0iamF2YWRvYyIgdmlzaWJpbGl0eT0icHVibGljIiBkZXNjcmlwdGlvbj0idGhpcyBjb25maWd1cmF0aW9uIGNvbnRhaW5zIHRoZSBqYXZhZG9jIGFydGlmYWN0IG9mIHRoaXMgbW9kdWxlLCBpZiBhbnkuIi8+CiAgICA8Y29uZiBuYW1lPSJvcHRpb25hbCIgdmlzaWJpbGl0eT0icHVibGljIiBkZXNjcmlwdGlvbj0iY29udGFpbnMgYWxsIG9wdGlvbmFsIGRlcGVuZGVuY2llcyIvPgogIDwvY29uZmlndXJhdGlvbnM+CiAgPHB1YmxpY2F0aW9ucz4KICAgIDxhcnRpZmFjdCBuYW1lPSJyYWRpb2Fya2l2LWluZnJhc3RydWN0dXJlIiB0eXBlPSJqYXIiIGV4dD0iamFyIiBjb25mPSJtYXN0ZXIiLz4KICA8L3B1YmxpY2F0aW9ucz4KICA8ZGVwZW5kZW5jaWVzPgogICAgPGRlcGVuZGVuY3kgb3JnPSJqdW5pdCIgbmFtZT0ianVuaXQiIHJldj0iNC4xMSIgZm9yY2U9InRydWUiIGNvbmY9InRlc3QtJmd0O3J1bnRpbWUoKiksbWFzdGVyKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5nbGFzc2Zpc2guaGsyIiBuYW1lPSJzcHJpbmctYnJpZGdlIiByZXY9IjIuMi4wLWIyMSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ibXlzcWwiIG5hbWU9Im15c3FsLWNvbm5lY3Rvci1qYXZhIiByZXY9IjUuMS4xOSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLmdsYXNzZmlzaC5oazIuZXh0ZXJuYWwiIG5hbWU9ImphdmF4LmluamVjdCIgcmV2PSIyLjIuMC1iMTkiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5nbHVvbiIgbmFtZT0iZGF0YW9yZGJvayIgcmV2PSIwLjk5LjEiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS5nb29nbGUuZ3VhdmEiIG5hbWU9Imd1YXZhIiByZXY9IjE1LjAiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5nbGFzc2Zpc2guamVyc2V5LmNvcmUiIG5hbWU9ImplcnNleS1jbGllbnQiIHJldj0iMi4zLjEiIGZvcmNlPSJ0cnVlIiBjb25mPSJ0ZXN0LSZndDtydW50aW1lKCopLG1hc3RlcigqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuZ2xhc3NmaXNoLmplcnNleS5tZWRpYSIgbmFtZT0iamVyc2V5LW1lZGlhLWpzb24tamFja3NvbiIgcmV2PSIyLjQuMSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLnNwcmluZ2ZyYW1ld29yayIgbmFtZT0ic3ByaW5nLWJlYW5zIiByZXY9IjQuMC4wLlJFTEVBU0UiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5jb21tb24uZnVuIiBuYW1lPSJjb21tb24tZnVuIiByZXY9IjAuMTAyLjAiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5heG9uZnJhbWV3b3JrIiBuYW1lPSJheG9uLWNvcmUiIHJldj0iMi4wLjYiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS5qYXl3YXkuanNvbnBhdGgiIG5hbWU9Impzb24tcGF0aC1hc3NlcnQiIHJldj0iMC45LjAiIGZvcmNlPSJ0cnVlIiBjb25mPSJ0ZXN0LSZndDtydW50aW1lKCopLG1hc3RlcigqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuc2xmNGoiIG5hbWU9InNsZjRqLWFwaSIgcmV2PSIxLjcuNSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0iY29tLnh5LmRyYSIgbmFtZT0idGVzdC1zdXBwb3J0LWplcnNleSIgcmV2PSIwLjIuMjUuNSIgZm9yY2U9InRydWUiIGNvbmY9InRlc3QtJmd0O3J1bnRpbWUoKiksbWFzdGVyKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5nbGFzc2Zpc2guamVyc2V5LmNvbnRhaW5lcnMiIG5hbWU9ImplcnNleS1jb250YWluZXItc2VydmxldC1jb3JlIiByZXY9IjIuNC4xIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJjb20ueHkuYXhvbmZyYW1ld29yayIgbmFtZT0iYXhvbmZyYW1ld29yay10ZXN0c3VwcG9ydCIgcmV2PSIwLjk5LjUiIGZvcmNlPSJ0cnVlIiBjb25mPSJ0ZXN0LSZndDtydW50aW1lKCopLG1hc3RlcigqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuZ2xhc3NmaXNoLmplcnNleS50ZXN0LWZyYW1ld29yay5wcm92aWRlcnMiIG5hbWU9ImplcnNleS10ZXN0LWZyYW1ld29yay1wcm92aWRlci1ncml6emx5MiIgcmV2PSIyLjMuMSIgZm9yY2U9InRydWUiIGNvbmY9InRlc3QtJmd0O3J1bnRpbWUoKiksbWFzdGVyKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5kcmEiIG5hbWU9Im1ldGFkYXRhd29ybGQiIHJldj0iMC4yLjI1LjUiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5kcmEiIG5hbWU9InJhZGlvYXJraXYtYXBwbGljYXRpb24iIHJldj0iMC4yLjI1LjUiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5heG9uZnJhbWV3b3JrIiBuYW1lPSJheG9uLXRlc3QiIHJldj0iMi4wLjYiIGZvcmNlPSJ0cnVlIiBjb25mPSJ0ZXN0LSZndDtydW50aW1lKCopLG1hc3RlcigqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuc3ByaW5nZnJhbWV3b3JrIiBuYW1lPSJzcHJpbmctd2ViIiByZXY9IjQuMC4wLlJFTEVBU0UiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5jb21tb24iIG5hbWU9ImNvbW1vbi1jb3JlIiByZXY9IjAuNTMiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5hcGFjaGUuamVuYSIgbmFtZT0iamVuYS1pcmkiIHJldj0iMS4wLjAiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5nbHVvbiIgbmFtZT0icm9sbGVsaXN0ZSIgcmV2PSIwLjk5LjEiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5kcmEiIG5hbWU9InJhZGlvYXJraXYtYXBpIiByZXY9IjAuMi4yNS41IiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuc3ByaW5nZnJhbWV3b3JrIiBuYW1lPSJzcHJpbmctY29yZSIgcmV2PSI0LjAuMC5SRUxFQVNFIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuYXBhY2hlLmplbmEiIG5hbWU9ImplbmEtYXJxIiByZXY9IjIuMTEuMCIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0iY29tLnh5Lm1kYi5tb2RlbHMiIG5hbWU9ImRpZ2FzLXZvY2FidWxhcnkiIHJldj0iMC45OS4wIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuZ2xhc3NmaXNoLmplcnNleS5jb3JlIiBuYW1lPSJqZXJzZXktc2VydmVyIiByZXY9IjIuNC4xIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJqb2RhLXRpbWUiIG5hbWU9ImpvZGEtdGltZSIgcmV2PSIyLjMiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5zcHJpbmdmcmFtZXdvcmsiIG5hbWU9InNwcmluZy10eCIgcmV2PSI0LjAuMC5SRUxFQVNFIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJjb20ueHkuZHJhIiBuYW1lPSJhdXRob3JpdHktcmVnaXN0cnkiIHJldj0iMC4yLjI1LjUiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9InhlcmNlcyIgbmFtZT0ieGVyY2VzSW1wbCIgcmV2PSIyLjExLjAiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5tZGIubW9kZWxzIiBuYW1lPSJ4eXpvcmctbW9kZWwiIHJldj0iMC45OS4wIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuaHNxbGRiIiBuYW1lPSJoc3FsZGIiIHJldj0iMi4zLjEiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5ob3JuZXRxIiBuYW1lPSJob3JuZXRxLWptcy1jbGllbnQiIHJldj0iMi4zLjAuRmluYWwiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5hcGFjaGUuamVuYSIgbmFtZT0iamVuYS1jb3JlIiByZXY9IjIuMTEuMCIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLmdsYXNzZmlzaC5qZXJzZXkuZXh0IiBuYW1lPSJqZXJzZXktc3ByaW5nMyIgcmV2PSIyLjQuMSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLmhvcm5ldHEiIG5hbWU9Imhvcm5ldHEtY29yZS1jbGllbnQiIHJldj0iMi4zLjAuRmluYWwiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5nbGFzc2Zpc2guamVyc2V5LnRlc3QtZnJhbWV3b3JrIiBuYW1lPSJqZXJzZXktdGVzdC1mcmFtZXdvcmstY29yZSIgcmV2PSIyLjMuMSIgZm9yY2U9InRydWUiIGNvbmY9InRlc3QtJmd0O3J1bnRpbWUoKiksbWFzdGVyKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5kcmEiIG5hbWU9InJhZGlvYXJraXYtcXVlcnktbW9kZWwtdmFsdWVzIiByZXY9IjAuMi4yNS41IiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJjb21tb25zLWRiY3AiIG5hbWU9ImNvbW1vbnMtZGJjcCIgcmV2PSIxLjQiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS5ncmFudWxhcjgiIG5hbWU9InNwZWNpZmljYXRpb24tcGF0dGVybiIgcmV2PSIxLjEuMSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLmVhc3l0ZXN0aW5nIiBuYW1lPSJmZXN0LWFzc2VydCIgcmV2PSIxLjQiIGZvcmNlPSJ0cnVlIiBjb25mPSJ0ZXN0LSZndDtydW50aW1lKCopLG1hc3RlcigqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJjaC5xb3MubG9nYmFjayIgbmFtZT0ibG9nYmFjay1jbGFzc2ljIiByZXY9IjEuMC4xMyIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLnNwcmluZ2ZyYW1ld29yayIgbmFtZT0ic3ByaW5nLWNvbnRleHQiIHJldj0iNC4wLjAuUkVMRUFTRSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0iamF2YXguam1zIiBuYW1lPSJqYXZheC5qbXMtYXBpIiByZXY9IjIuMCIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLmFwYWNoZS5jb21tb25zIiBuYW1lPSJjb21tb25zLWxhbmczIiByZXY9IjMuMSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0iY29tLnh5Lm1kYi5tb2RlbHMiIG5hbWU9ImVidWNjZG0tdm9jYWJ1bGFyeSIgcmV2PSIwLjEwMC4wIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJqYXZheC5zZXJ2bGV0IiBuYW1lPSJqYXZheC5zZXJ2bGV0LWFwaSIgcmV2PSIzLjEuMCIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLmdsYXNzZmlzaC5ncml6emx5IiBuYW1lPSJncml6emx5LWh0dHAtc2VydmxldCIgcmV2PSIyLjMuNiIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLm1vY2tpdG8iIG5hbWU9Im1vY2tpdG8tY29yZSIgcmV2PSIxLjkuNSIgZm9yY2U9InRydWUiIGNvbmY9InRlc3QtJmd0O3J1bnRpbWUoKiksbWFzdGVyKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5nbGFzc2Zpc2guZ3JpenpseSIgbmFtZT0iZ3JpenpseS1odHRwLXNlcnZlciIgcmV2PSIyLjMuNiIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICA8L2RlcGVuZGVuY2llcz4KPC9pdnktbW9kdWxlPgo=
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the enclosed test case
ACTUAL -
The test case fails with an exception, demonstrating corruption of data
REPRODUCIBILITY :
This bug can be reproduced occasionally.
---------- BEGIN SOURCE ----------
public static void main(String[] args) throws ParserConfigurationException, org.xml.sax.SAXException, IOException {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
public void startElement(String uri, String localName,String qName,
Attributes attributes) throws SAXException {
final String name = attributes.getValue("name");
final String org = attributes.getValue("org");
if ("jena-iri".equals(name)){
if (!"org.apache.jena".equals(org)){
throw new RuntimeException("Sax is broken:" + org);
}
}
}
};
final InputStream resourceAsStream = SaxTest.class.getResourceAsStream("ivy.xml");
saxParser.parse(resourceAsStream, handler);
resourceAsStream.close();
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Avoid using embedded version of sax parser
1.7.0_45
A DESCRIPTION OF THE PROBLEM :
xml 1.1 sax parsing can corrupt data for files over 8192 bytes long.
This applies to the version of xerces that is bundled in the jdk. Upgrading to a newer xerces version (from an external source) fixes the problem
A description of the problem can also be found here: https://community.oracle.com/thread/1626288
The "additional regression information" field of this issue contains a base64 encoded version of the "ivy.xml" file used in the sample code.
ADDITIONAL REGRESSION INFORMATION:
PD94bWwgdmVyc2lvbj0iMS4xIiBlbmNvZGluZz0iVVRGLTgiPz4KPGl2eS1tb2R1bGUgdmVyc2lvbj0iMi4wIiB4bWxuczptPSJodHRwOi8vYW50LmFwYWNoZS5vcmcvaXZ5L21hdmVuIj4KICA8aW5mbyBvcmdhbmlzYXRpb249ImNvbS54eS5kcmEiIG1vZHVsZT0icmFkaW9hcmtpdi1pbmZyYXN0cnVjdHVyZSIgcmV2aXNpb249IjAuMi4yNS41IiBzdGF0dXM9InJlbGVhc2UiIHB1YmxpY2F0aW9uPSIxOTcwMDEwMTAwNTk1OSI+CiAgICA8ZGVzY3JpcHRpb24gaG9tZXBhZ2U9IiIvPgogIDwvaW5mbz4KICA8Y29uZmlndXJhdGlvbnM+CiAgICA8Y29uZiBuYW1lPSJkZWZhdWx0IiB2aXNpYmlsaXR5PSJwdWJsaWMiIGRlc2NyaXB0aW9uPSJydW50aW1lIGRlcGVuZGVuY2llcyBhbmQgbWFzdGVyIGFydGlmYWN0IGNhbiBiZSB1c2VkIHdpdGggdGhpcyBjb25mIiBleHRlbmRzPSJydW50aW1lLG1hc3RlciIvPgogICAgPGNvbmYgbmFtZT0ibWFzdGVyIiB2aXNpYmlsaXR5PSJwdWJsaWMiIGRlc2NyaXB0aW9uPSJjb250YWlucyBvbmx5IHRoZSBhcnRpZmFjdCBwdWJsaXNoZWQgYnkgdGhpcyBtb2R1bGUgaXRzZWxmLCB3aXRoIG5vIHRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzIi8+CiAgICA8Y29uZiBuYW1lPSJjb21waWxlIiB2aXNpYmlsaXR5PSJwdWJsaWMiIGRlc2NyaXB0aW9uPSJ0aGlzIGlzIHRoZSBkZWZhdWx0IHNjb3BlLCB1c2VkIGlmIG5vbmUgaXMgc3BlY2lmaWVkLiBDb21waWxlIGRlcGVuZGVuY2llcyBhcmUgYXZhaWxhYmxlIGluIGFsbCBjbGFzc3BhdGhzLiIvPgogICAgPGNvbmYgbmFtZT0icHJvdmlkZWQiIHZpc2liaWxpdHk9InB1YmxpYyIgZGVzY3JpcHRpb249InRoaXMgaXMgbXVjaCBsaWtlIGNvbXBpbGUsIGJ1dCBpbmRpY2F0ZXMgeW91IGV4cGVjdCB0aGUgSkRLIG9yIGEgY29udGFpbmVyIHRvIHByb3ZpZGUgaXQuIEl0IGlzIG9ubHkgYXZhaWxhYmxlIG9uIHRoZSBjb21waWxhdGlvbiBjbGFzc3BhdGgsIGFuZCBpcyBub3QgdHJhbnNpdGl2ZS4iLz4KICAgIDxjb25mIG5hbWU9InJ1bnRpbWUiIHZpc2liaWxpdHk9InB1YmxpYyIgZGVzY3JpcHRpb249InRoaXMgc2NvcGUgaW5kaWNhdGVzIHRoYXQgdGhlIGRlcGVuZGVuY3kgaXMgbm90IHJlcXVpcmVkIGZvciBjb21waWxhdGlvbiwgYnV0IGlzIGZvciBleGVjdXRpb24uIEl0IGlzIGluIHRoZSBydW50aW1lIGFuZCB0ZXN0IGNsYXNzcGF0aHMsIGJ1dCBub3QgdGhlIGNvbXBpbGUgY2xhc3NwYXRoLiIgZXh0ZW5kcz0iY29tcGlsZSIvPgogICAgPGNvbmYgbmFtZT0idGVzdCIgdmlzaWJpbGl0eT0icHJpdmF0ZSIgZGVzY3JpcHRpb249InRoaXMgc2NvcGUgaW5kaWNhdGVzIHRoYXQgdGhlIGRlcGVuZGVuY3kgaXMgbm90IHJlcXVpcmVkIGZvciBub3JtYWwgdXNlIG9mIHRoZSBhcHBsaWNhdGlvbiwgYW5kIGlzIG9ubHkgYXZhaWxhYmxlIGZvciB0aGUgdGVzdCBjb21waWxhdGlvbiBhbmQgZXhlY3V0aW9uIHBoYXNlcy4iIGV4dGVuZHM9InJ1bnRpbWUiLz4KICAgIDxjb25mIG5hbWU9InN5c3RlbSIgdmlzaWJpbGl0eT0icHVibGljIiBkZXNjcmlwdGlvbj0idGhpcyBzY29wZSBpcyBzaW1pbGFyIHRvIHByb3ZpZGVkIGV4Y2VwdCB0aGF0IHlvdSBoYXZlIHRvIHByb3ZpZGUgdGhlIEpBUiB3aGljaCBjb250YWlucyBpdCBleHBsaWNpdGx5LiBUaGUgYXJ0aWZhY3QgaXMgYWx3YXlzIGF2YWlsYWJsZSBhbmQgaXMgbm90IGxvb2tlZCB1cCBpbiBhIHJlcG9zaXRvcnkuIi8+CiAgICA8Y29uZiBuYW1lPSJzb3VyY2VzIiB2aXNpYmlsaXR5PSJwdWJsaWMiIGRlc2NyaXB0aW9uPSJ0aGlzIGNvbmZpZ3VyYXRpb24gY29udGFpbnMgdGhlIHNvdXJjZSBhcnRpZmFjdCBvZiB0aGlzIG1vZHVsZSwgaWYgYW55LiIvPgogICAgPGNvbmYgbmFtZT0iamF2YWRvYyIgdmlzaWJpbGl0eT0icHVibGljIiBkZXNjcmlwdGlvbj0idGhpcyBjb25maWd1cmF0aW9uIGNvbnRhaW5zIHRoZSBqYXZhZG9jIGFydGlmYWN0IG9mIHRoaXMgbW9kdWxlLCBpZiBhbnkuIi8+CiAgICA8Y29uZiBuYW1lPSJvcHRpb25hbCIgdmlzaWJpbGl0eT0icHVibGljIiBkZXNjcmlwdGlvbj0iY29udGFpbnMgYWxsIG9wdGlvbmFsIGRlcGVuZGVuY2llcyIvPgogIDwvY29uZmlndXJhdGlvbnM+CiAgPHB1YmxpY2F0aW9ucz4KICAgIDxhcnRpZmFjdCBuYW1lPSJyYWRpb2Fya2l2LWluZnJhc3RydWN0dXJlIiB0eXBlPSJqYXIiIGV4dD0iamFyIiBjb25mPSJtYXN0ZXIiLz4KICA8L3B1YmxpY2F0aW9ucz4KICA8ZGVwZW5kZW5jaWVzPgogICAgPGRlcGVuZGVuY3kgb3JnPSJqdW5pdCIgbmFtZT0ianVuaXQiIHJldj0iNC4xMSIgZm9yY2U9InRydWUiIGNvbmY9InRlc3QtJmd0O3J1bnRpbWUoKiksbWFzdGVyKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5nbGFzc2Zpc2guaGsyIiBuYW1lPSJzcHJpbmctYnJpZGdlIiByZXY9IjIuMi4wLWIyMSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ibXlzcWwiIG5hbWU9Im15c3FsLWNvbm5lY3Rvci1qYXZhIiByZXY9IjUuMS4xOSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLmdsYXNzZmlzaC5oazIuZXh0ZXJuYWwiIG5hbWU9ImphdmF4LmluamVjdCIgcmV2PSIyLjIuMC1iMTkiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5nbHVvbiIgbmFtZT0iZGF0YW9yZGJvayIgcmV2PSIwLjk5LjEiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS5nb29nbGUuZ3VhdmEiIG5hbWU9Imd1YXZhIiByZXY9IjE1LjAiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5nbGFzc2Zpc2guamVyc2V5LmNvcmUiIG5hbWU9ImplcnNleS1jbGllbnQiIHJldj0iMi4zLjEiIGZvcmNlPSJ0cnVlIiBjb25mPSJ0ZXN0LSZndDtydW50aW1lKCopLG1hc3RlcigqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuZ2xhc3NmaXNoLmplcnNleS5tZWRpYSIgbmFtZT0iamVyc2V5LW1lZGlhLWpzb24tamFja3NvbiIgcmV2PSIyLjQuMSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLnNwcmluZ2ZyYW1ld29yayIgbmFtZT0ic3ByaW5nLWJlYW5zIiByZXY9IjQuMC4wLlJFTEVBU0UiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5jb21tb24uZnVuIiBuYW1lPSJjb21tb24tZnVuIiByZXY9IjAuMTAyLjAiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5heG9uZnJhbWV3b3JrIiBuYW1lPSJheG9uLWNvcmUiIHJldj0iMi4wLjYiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS5qYXl3YXkuanNvbnBhdGgiIG5hbWU9Impzb24tcGF0aC1hc3NlcnQiIHJldj0iMC45LjAiIGZvcmNlPSJ0cnVlIiBjb25mPSJ0ZXN0LSZndDtydW50aW1lKCopLG1hc3RlcigqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuc2xmNGoiIG5hbWU9InNsZjRqLWFwaSIgcmV2PSIxLjcuNSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0iY29tLnh5LmRyYSIgbmFtZT0idGVzdC1zdXBwb3J0LWplcnNleSIgcmV2PSIwLjIuMjUuNSIgZm9yY2U9InRydWUiIGNvbmY9InRlc3QtJmd0O3J1bnRpbWUoKiksbWFzdGVyKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5nbGFzc2Zpc2guamVyc2V5LmNvbnRhaW5lcnMiIG5hbWU9ImplcnNleS1jb250YWluZXItc2VydmxldC1jb3JlIiByZXY9IjIuNC4xIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJjb20ueHkuYXhvbmZyYW1ld29yayIgbmFtZT0iYXhvbmZyYW1ld29yay10ZXN0c3VwcG9ydCIgcmV2PSIwLjk5LjUiIGZvcmNlPSJ0cnVlIiBjb25mPSJ0ZXN0LSZndDtydW50aW1lKCopLG1hc3RlcigqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuZ2xhc3NmaXNoLmplcnNleS50ZXN0LWZyYW1ld29yay5wcm92aWRlcnMiIG5hbWU9ImplcnNleS10ZXN0LWZyYW1ld29yay1wcm92aWRlci1ncml6emx5MiIgcmV2PSIyLjMuMSIgZm9yY2U9InRydWUiIGNvbmY9InRlc3QtJmd0O3J1bnRpbWUoKiksbWFzdGVyKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5kcmEiIG5hbWU9Im1ldGFkYXRhd29ybGQiIHJldj0iMC4yLjI1LjUiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5kcmEiIG5hbWU9InJhZGlvYXJraXYtYXBwbGljYXRpb24iIHJldj0iMC4yLjI1LjUiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5heG9uZnJhbWV3b3JrIiBuYW1lPSJheG9uLXRlc3QiIHJldj0iMi4wLjYiIGZvcmNlPSJ0cnVlIiBjb25mPSJ0ZXN0LSZndDtydW50aW1lKCopLG1hc3RlcigqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuc3ByaW5nZnJhbWV3b3JrIiBuYW1lPSJzcHJpbmctd2ViIiByZXY9IjQuMC4wLlJFTEVBU0UiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5jb21tb24iIG5hbWU9ImNvbW1vbi1jb3JlIiByZXY9IjAuNTMiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5hcGFjaGUuamVuYSIgbmFtZT0iamVuYS1pcmkiIHJldj0iMS4wLjAiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5nbHVvbiIgbmFtZT0icm9sbGVsaXN0ZSIgcmV2PSIwLjk5LjEiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5kcmEiIG5hbWU9InJhZGlvYXJraXYtYXBpIiByZXY9IjAuMi4yNS41IiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuc3ByaW5nZnJhbWV3b3JrIiBuYW1lPSJzcHJpbmctY29yZSIgcmV2PSI0LjAuMC5SRUxFQVNFIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuYXBhY2hlLmplbmEiIG5hbWU9ImplbmEtYXJxIiByZXY9IjIuMTEuMCIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0iY29tLnh5Lm1kYi5tb2RlbHMiIG5hbWU9ImRpZ2FzLXZvY2FidWxhcnkiIHJldj0iMC45OS4wIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuZ2xhc3NmaXNoLmplcnNleS5jb3JlIiBuYW1lPSJqZXJzZXktc2VydmVyIiByZXY9IjIuNC4xIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJqb2RhLXRpbWUiIG5hbWU9ImpvZGEtdGltZSIgcmV2PSIyLjMiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5zcHJpbmdmcmFtZXdvcmsiIG5hbWU9InNwcmluZy10eCIgcmV2PSI0LjAuMC5SRUxFQVNFIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJjb20ueHkuZHJhIiBuYW1lPSJhdXRob3JpdHktcmVnaXN0cnkiIHJldj0iMC4yLjI1LjUiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9InhlcmNlcyIgbmFtZT0ieGVyY2VzSW1wbCIgcmV2PSIyLjExLjAiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5tZGIubW9kZWxzIiBuYW1lPSJ4eXpvcmctbW9kZWwiIHJldj0iMC45OS4wIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJvcmcuaHNxbGRiIiBuYW1lPSJoc3FsZGIiIHJldj0iMi4zLjEiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5ob3JuZXRxIiBuYW1lPSJob3JuZXRxLWptcy1jbGllbnQiIHJldj0iMi4zLjAuRmluYWwiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5hcGFjaGUuamVuYSIgbmFtZT0iamVuYS1jb3JlIiByZXY9IjIuMTEuMCIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLmdsYXNzZmlzaC5qZXJzZXkuZXh0IiBuYW1lPSJqZXJzZXktc3ByaW5nMyIgcmV2PSIyLjQuMSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLmhvcm5ldHEiIG5hbWU9Imhvcm5ldHEtY29yZS1jbGllbnQiIHJldj0iMi4zLjAuRmluYWwiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5nbGFzc2Zpc2guamVyc2V5LnRlc3QtZnJhbWV3b3JrIiBuYW1lPSJqZXJzZXktdGVzdC1mcmFtZXdvcmstY29yZSIgcmV2PSIyLjMuMSIgZm9yY2U9InRydWUiIGNvbmY9InRlc3QtJmd0O3J1bnRpbWUoKiksbWFzdGVyKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS54eS5kcmEiIG5hbWU9InJhZGlvYXJraXYtcXVlcnktbW9kZWwtdmFsdWVzIiByZXY9IjAuMi4yNS41IiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJjb21tb25zLWRiY3AiIG5hbWU9ImNvbW1vbnMtZGJjcCIgcmV2PSIxLjQiIGZvcmNlPSJ0cnVlIiBjb25mPSJjb21waWxlLSZndDtjb21waWxlKCopLG1hc3RlcigqKTtydW50aW1lLSZndDtydW50aW1lKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9ImNvbS5ncmFudWxhcjgiIG5hbWU9InNwZWNpZmljYXRpb24tcGF0dGVybiIgcmV2PSIxLjEuMSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLmVhc3l0ZXN0aW5nIiBuYW1lPSJmZXN0LWFzc2VydCIgcmV2PSIxLjQiIGZvcmNlPSJ0cnVlIiBjb25mPSJ0ZXN0LSZndDtydW50aW1lKCopLG1hc3RlcigqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJjaC5xb3MubG9nYmFjayIgbmFtZT0ibG9nYmFjay1jbGFzc2ljIiByZXY9IjEuMC4xMyIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLnNwcmluZ2ZyYW1ld29yayIgbmFtZT0ic3ByaW5nLWNvbnRleHQiIHJldj0iNC4wLjAuUkVMRUFTRSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0iamF2YXguam1zIiBuYW1lPSJqYXZheC5qbXMtYXBpIiByZXY9IjIuMCIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLmFwYWNoZS5jb21tb25zIiBuYW1lPSJjb21tb25zLWxhbmczIiByZXY9IjMuMSIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0iY29tLnh5Lm1kYi5tb2RlbHMiIG5hbWU9ImVidWNjZG0tdm9jYWJ1bGFyeSIgcmV2PSIwLjEwMC4wIiBmb3JjZT0idHJ1ZSIgY29uZj0iY29tcGlsZS0mZ3Q7Y29tcGlsZSgqKSxtYXN0ZXIoKik7cnVudGltZS0mZ3Q7cnVudGltZSgqKSI+CiAgICAgIDxleGNsdWRlIG9yZz0ib3JnLnNsZjRqIiBtb2R1bGU9InNsZjRqLWxvZzRqMTIiIG5hbWU9IioiIHR5cGU9IioiIGV4dD0iKiIgY29uZj0iIiBtYXRjaGVyPSJleGFjdCIvPgogICAgPC9kZXBlbmRlbmN5PgogICAgPGRlcGVuZGVuY3kgb3JnPSJqYXZheC5zZXJ2bGV0IiBuYW1lPSJqYXZheC5zZXJ2bGV0LWFwaSIgcmV2PSIzLjEuMCIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLmdsYXNzZmlzaC5ncml6emx5IiBuYW1lPSJncml6emx5LWh0dHAtc2VydmxldCIgcmV2PSIyLjMuNiIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICAgIDxkZXBlbmRlbmN5IG9yZz0ib3JnLm1vY2tpdG8iIG5hbWU9Im1vY2tpdG8tY29yZSIgcmV2PSIxLjkuNSIgZm9yY2U9InRydWUiIGNvbmY9InRlc3QtJmd0O3J1bnRpbWUoKiksbWFzdGVyKCopIj4KICAgICAgPGV4Y2x1ZGUgb3JnPSJvcmcuc2xmNGoiIG1vZHVsZT0ic2xmNGotbG9nNGoxMiIgbmFtZT0iKiIgdHlwZT0iKiIgZXh0PSIqIiBjb25mPSIiIG1hdGNoZXI9ImV4YWN0Ii8+CiAgICA8L2RlcGVuZGVuY3k+CiAgICA8ZGVwZW5kZW5jeSBvcmc9Im9yZy5nbGFzc2Zpc2guZ3JpenpseSIgbmFtZT0iZ3JpenpseS1odHRwLXNlcnZlciIgcmV2PSIyLjMuNiIgZm9yY2U9InRydWUiIGNvbmY9ImNvbXBpbGUtJmd0O2NvbXBpbGUoKiksbWFzdGVyKCopO3J1bnRpbWUtJmd0O3J1bnRpbWUoKikiPgogICAgICA8ZXhjbHVkZSBvcmc9Im9yZy5zbGY0aiIgbW9kdWxlPSJzbGY0ai1sb2c0ajEyIiBuYW1lPSIqIiB0eXBlPSIqIiBleHQ9IioiIGNvbmY9IiIgbWF0Y2hlcj0iZXhhY3QiLz4KICAgIDwvZGVwZW5kZW5jeT4KICA8L2RlcGVuZGVuY2llcz4KPC9pdnktbW9kdWxlPgo=
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run the enclosed test case
ACTUAL -
The test case fails with an exception, demonstrating corruption of data
REPRODUCIBILITY :
This bug can be reproduced occasionally.
---------- BEGIN SOURCE ----------
public static void main(String[] args) throws ParserConfigurationException, org.xml.sax.SAXException, IOException {
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
public void startElement(String uri, String localName,String qName,
Attributes attributes) throws SAXException {
final String name = attributes.getValue("name");
final String org = attributes.getValue("org");
if ("jena-iri".equals(name)){
if (!"org.apache.jena".equals(org)){
throw new RuntimeException("Sax is broken:" + org);
}
}
}
};
final InputStream resourceAsStream = SaxTest.class.getResourceAsStream("ivy.xml");
saxParser.parse(resourceAsStream, handler);
resourceAsStream.close();
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Avoid using embedded version of sax parser
- duplicates
-
JDK-8027359 XML parser returns incorrect parsing results
- Resolved