From 63bce3f25324fc0a573358ff48d9e0d10f6b6634 Mon Sep 17 00:00:00 2001 From: Baoshuo Date: Sun, 9 Oct 2022 21:45:29 +0800 Subject: [PATCH] chore(web): use composer --- web/app/composer.json | 4 +- web/app/vendor/composer/autoload_files.php | 1 + .../vendor/composer/autoload_namespaces.php | 1 + web/app/vendor/composer/autoload_psr4.php | 1 + web/app/vendor/composer/autoload_static.php | 20 + web/app/vendor/composer/installed.json | 135 + .../vendor/ezyang/htmlpurifier/CHANGELOG.md | 6 + web/app/vendor/ezyang/htmlpurifier/CREDITS | 9 + .../htmlpurifier}/LICENSE | 28 +- web/app/vendor/ezyang/htmlpurifier/README.md | 29 + web/app/vendor/ezyang/htmlpurifier/VERSION | 1 + .../vendor/ezyang/htmlpurifier/composer.json | 44 + .../library}/HTMLPurifier.auto.php | 0 .../library/HTMLPurifier.autoload-legacy.php | 14 + .../library}/HTMLPurifier.autoload.php | 6 +- .../library/HTMLPurifier.composer.php | 4 + .../library}/HTMLPurifier.func.php | 0 .../library}/HTMLPurifier.includes.php | 8 +- .../library}/HTMLPurifier.kses.php | 0 .../library}/HTMLPurifier.path.php | 0 .../htmlpurifier/library}/HTMLPurifier.php | 19 +- .../library}/HTMLPurifier.safe-includes.php | 6 + .../library}/HTMLPurifier/Arborize.php | 6 +- .../library}/HTMLPurifier/AttrCollections.php | 5 + .../library}/HTMLPurifier/AttrDef.php | 8 +- .../library}/HTMLPurifier/AttrDef/CSS.php | 46 +- .../HTMLPurifier/AttrDef/CSS/AlphaValue.php | 0 .../HTMLPurifier/AttrDef/CSS/Background.php | 2 + .../AttrDef/CSS/BackgroundPosition.php | 0 .../HTMLPurifier/AttrDef/CSS/Border.php | 0 .../HTMLPurifier/AttrDef/CSS/Color.php | 161 + .../HTMLPurifier/AttrDef/CSS/Composite.php | 0 .../AttrDef/CSS/DenyElementDecorator.php | 0 .../HTMLPurifier/AttrDef/CSS/Filter.php | 0 .../HTMLPurifier/AttrDef/CSS/Font.php | 0 .../HTMLPurifier/AttrDef/CSS/FontFamily.php | 0 .../HTMLPurifier/AttrDef/CSS/Ident.php | 0 .../AttrDef/CSS/ImportantDecorator.php | 0 .../HTMLPurifier/AttrDef/CSS/Length.php | 0 .../HTMLPurifier/AttrDef/CSS/ListStyle.php | 0 .../HTMLPurifier/AttrDef/CSS/Multiple.php | 2 +- .../HTMLPurifier/AttrDef/CSS/Number.php | 8 +- .../HTMLPurifier/AttrDef/CSS/Percentage.php | 0 .../AttrDef/CSS/TextDecoration.php | 0 .../library}/HTMLPurifier/AttrDef/CSS/URI.php | 3 + .../library}/HTMLPurifier/AttrDef/Clone.php | 0 .../library}/HTMLPurifier/AttrDef/Enum.php | 0 .../HTMLPurifier/AttrDef/HTML/Bool.php | 7 +- .../HTMLPurifier/AttrDef/HTML/Class.php | 0 .../HTMLPurifier/AttrDef/HTML/Color.php | 0 .../AttrDef/HTML/ContentEditable.php | 16 + .../HTMLPurifier/AttrDef/HTML/FrameTarget.php | 0 .../library}/HTMLPurifier/AttrDef/HTML/ID.php | 32 +- .../HTMLPurifier/AttrDef/HTML/Length.php | 0 .../HTMLPurifier/AttrDef/HTML/LinkTypes.php | 0 .../HTMLPurifier/AttrDef/HTML/MultiLength.php | 0 .../HTMLPurifier/AttrDef/HTML/Nmtokens.php | 0 .../HTMLPurifier/AttrDef/HTML/Pixels.php | 0 .../library}/HTMLPurifier/AttrDef/Integer.php | 0 .../library}/HTMLPurifier/AttrDef/Lang.php | 0 .../library}/HTMLPurifier/AttrDef/Switch.php | 0 .../library}/HTMLPurifier/AttrDef/Text.php | 0 .../library}/HTMLPurifier/AttrDef/URI.php | 0 .../HTMLPurifier/AttrDef/URI/Email.php | 0 .../AttrDef/URI/Email/SimpleCheck.php | 0 .../HTMLPurifier/AttrDef/URI/Host.php | 34 +- .../HTMLPurifier/AttrDef/URI/IPv4.php | 0 .../HTMLPurifier/AttrDef/URI/IPv6.php | 0 .../library}/HTMLPurifier/AttrTransform.php | 0 .../HTMLPurifier/AttrTransform/Background.php | 0 .../HTMLPurifier/AttrTransform/BdoDir.php | 0 .../HTMLPurifier/AttrTransform/BgColor.php | 0 .../HTMLPurifier/AttrTransform/BoolToCSS.php | 0 .../HTMLPurifier/AttrTransform/Border.php | 0 .../HTMLPurifier/AttrTransform/EnumToCSS.php | 0 .../AttrTransform/ImgRequired.php | 3 +- .../HTMLPurifier/AttrTransform/ImgSpace.php | 0 .../HTMLPurifier/AttrTransform/Input.php | 0 .../HTMLPurifier/AttrTransform/Lang.php | 0 .../HTMLPurifier/AttrTransform/Length.php | 0 .../HTMLPurifier/AttrTransform/Name.php | 0 .../HTMLPurifier/AttrTransform/NameSync.php | 5 + .../HTMLPurifier/AttrTransform/Nofollow.php | 0 .../HTMLPurifier/AttrTransform/SafeEmbed.php | 0 .../HTMLPurifier/AttrTransform/SafeObject.php | 0 .../HTMLPurifier/AttrTransform/SafeParam.php | 5 + .../AttrTransform/ScriptRequired.php | 0 .../AttrTransform/TargetBlank.php | 0 .../AttrTransform/TargetNoopener.php | 37 + .../AttrTransform/TargetNoreferrer.php | 37 + .../HTMLPurifier/AttrTransform/Textarea.php | 0 .../library}/HTMLPurifier/AttrTypes.php | 1 + .../library}/HTMLPurifier/AttrValidator.php | 0 .../library}/HTMLPurifier/Bootstrap.php | 0 .../library}/HTMLPurifier/CSSDefinition.php | 81 +- .../library}/HTMLPurifier/ChildDef.php | 0 .../HTMLPurifier/ChildDef/Chameleon.php | 0 .../library}/HTMLPurifier/ChildDef/Custom.php | 2 +- .../library}/HTMLPurifier/ChildDef/Empty.php | 0 .../library}/HTMLPurifier/ChildDef/List.php | 12 +- .../HTMLPurifier/ChildDef/Optional.php | 0 .../HTMLPurifier/ChildDef/Required.php | 0 .../ChildDef/StrictBlockquote.php | 0 .../library}/HTMLPurifier/ChildDef/Table.php | 4 +- .../library}/HTMLPurifier/Config.php | 29 +- .../library}/HTMLPurifier/ConfigSchema.php | 16 +- .../ConfigSchema/Builder/ConfigSchema.php | 0 .../HTMLPurifier/ConfigSchema/Builder/Xml.php | 0 .../HTMLPurifier/ConfigSchema/Exception.php | 0 .../HTMLPurifier/ConfigSchema/Interchange.php | 0 .../ConfigSchema/Interchange/Directive.php | 0 .../ConfigSchema/Interchange/Id.php | 0 .../ConfigSchema/InterchangeBuilder.php | 0 .../HTMLPurifier/ConfigSchema/Validator.php | 0 .../ConfigSchema/ValidatorAtom.php | 0 .../HTMLPurifier/ConfigSchema/schema.ser | 1 + .../schema/Attr.AllowedClasses.txt | 0 .../schema/Attr.AllowedFrameTargets.txt | 0 .../ConfigSchema/schema/Attr.AllowedRel.txt | 0 .../ConfigSchema/schema/Attr.AllowedRev.txt | 0 .../schema/Attr.ClassUseCDATA.txt | 0 .../schema/Attr.DefaultImageAlt.txt | 0 .../schema/Attr.DefaultInvalidImage.txt | 0 .../schema/Attr.DefaultInvalidImageAlt.txt | 0 .../schema/Attr.DefaultTextDir.txt | 0 .../ConfigSchema/schema/Attr.EnableID.txt | 0 .../schema/Attr.ForbiddenClasses.txt | 0 .../ConfigSchema/schema/Attr.ID.HTML5.txt | 10 + .../ConfigSchema/schema/Attr.IDBlacklist.txt | 0 .../schema/Attr.IDBlacklistRegexp.txt | 0 .../ConfigSchema/schema/Attr.IDPrefix.txt | 0 .../schema/Attr.IDPrefixLocal.txt | 0 .../schema/AutoFormat.AutoParagraph.txt | 0 .../ConfigSchema/schema/AutoFormat.Custom.txt | 0 .../schema/AutoFormat.DisplayLinkURI.txt | 0 .../schema/AutoFormat.Linkify.txt | 0 .../AutoFormat.PurifierLinkify.DocURL.txt | 0 .../schema/AutoFormat.PurifierLinkify.txt | 0 .../AutoFormat.RemoveEmpty.Predicate.txt | 14 + ...rmat.RemoveEmpty.RemoveNbsp.Exceptions.txt | 0 .../AutoFormat.RemoveEmpty.RemoveNbsp.txt | 2 +- .../schema/AutoFormat.RemoveEmpty.txt | 0 ...utoFormat.RemoveSpansWithoutAttributes.txt | 0 .../schema/CSS.AllowDuplicates.txt | 11 + .../schema/CSS.AllowImportant.txt | 0 .../ConfigSchema/schema/CSS.AllowTricky.txt | 0 .../ConfigSchema/schema/CSS.AllowedFonts.txt | 0 .../schema/CSS.AllowedProperties.txt | 0 .../ConfigSchema/schema/CSS.DefinitionRev.txt | 0 .../schema/CSS.ForbiddenProperties.txt | 0 .../ConfigSchema/schema/CSS.MaxImgLength.txt | 0 .../ConfigSchema/schema/CSS.Proprietary.txt | 0 .../ConfigSchema/schema/CSS.Trusted.txt | 0 .../schema/Cache.DefinitionImpl.txt | 0 .../schema/Cache.SerializerPath.txt | 0 .../schema/Cache.SerializerPermissions.txt | 7 +- .../schema/Core.AggressivelyFixLt.txt | 0 .../schema/Core.AggressivelyRemoveScript.txt | 16 + .../schema/Core.AllowHostnameUnderscore.txt | 0 .../schema/Core.AllowParseManyTags.txt | 12 + .../schema/Core.CollectErrors.txt | 0 .../schema/Core.ColorKeywords.txt | 160 + .../schema/Core.ConvertDocumentToFragment.txt | 0 .../Core.DirectLexLineNumberSyncInterval.txt | 0 .../schema/Core.DisableExcludes.txt | 0 .../ConfigSchema/schema/Core.EnableIDNA.txt | 0 .../ConfigSchema/schema/Core.Encoding.txt | 0 .../schema/Core.EscapeInvalidChildren.txt | 0 .../schema/Core.EscapeInvalidTags.txt | 0 .../schema/Core.EscapeNonASCIICharacters.txt | 0 .../schema/Core.HiddenElements.txt | 0 .../ConfigSchema/schema/Core.Language.txt | 0 .../schema/Core.LegacyEntityDecoder.txt | 36 + .../ConfigSchema/schema/Core.LexerImpl.txt | 0 .../schema/Core.MaintainLineNumbers.txt | 0 .../schema/Core.NormalizeNewlines.txt | 0 .../schema/Core.RemoveInvalidImg.txt | 0 .../Core.RemoveProcessingInstructions.txt | 0 .../schema/Core.RemoveScriptContents.txt | 0 .../ConfigSchema/schema/Filter.Custom.txt | 0 .../Filter.ExtractStyleBlocks.Escaping.txt | 0 .../Filter.ExtractStyleBlocks.Scope.txt | 0 .../Filter.ExtractStyleBlocks.TidyImpl.txt | 0 .../schema/Filter.ExtractStyleBlocks.txt | 0 .../ConfigSchema/schema/Filter.YouTube.txt | 0 .../ConfigSchema/schema/HTML.Allowed.txt | 0 .../schema/HTML.AllowedAttributes.txt | 0 .../schema/HTML.AllowedComments.txt | 0 .../schema/HTML.AllowedCommentsRegexp.txt | 0 .../schema/HTML.AllowedElements.txt | 0 .../schema/HTML.AllowedModules.txt | 0 .../schema/HTML.Attr.Name.UseCDATA.txt | 0 .../ConfigSchema/schema/HTML.BlockWrapper.txt | 0 .../ConfigSchema/schema/HTML.CoreModules.txt | 0 .../schema/HTML.CustomDoctype.txt | 2 +- .../ConfigSchema/schema/HTML.DefinitionID.txt | 0 .../schema/HTML.DefinitionRev.txt | 0 .../ConfigSchema/schema/HTML.Doctype.txt | 0 .../schema/HTML.FlashAllowFullScreen.txt | 0 .../schema/HTML.ForbiddenAttributes.txt | 0 .../schema/HTML.ForbiddenElements.txt | 0 .../ConfigSchema/schema/HTML.Forms.txt | 11 + .../ConfigSchema/schema/HTML.MaxImgLength.txt | 0 .../ConfigSchema/schema/HTML.Nofollow.txt | 0 .../ConfigSchema/schema/HTML.Parent.txt | 0 .../ConfigSchema/schema/HTML.Proprietary.txt | 0 .../ConfigSchema/schema/HTML.SafeEmbed.txt | 0 .../ConfigSchema/schema/HTML.SafeIframe.txt | 0 .../ConfigSchema/schema/HTML.SafeObject.txt | 0 .../schema/HTML.SafeScripting.txt | 0 .../ConfigSchema/schema/HTML.Strict.txt | 0 .../ConfigSchema/schema/HTML.TargetBlank.txt | 0 .../schema/HTML.TargetNoopener.txt | 10 + .../schema/HTML.TargetNoreferrer.txt | 9 + .../ConfigSchema/schema/HTML.TidyAdd.txt | 0 .../ConfigSchema/schema/HTML.TidyLevel.txt | 0 .../ConfigSchema/schema/HTML.TidyRemove.txt | 0 .../ConfigSchema/schema/HTML.Trusted.txt | 0 .../ConfigSchema/schema/HTML.XHTML.txt | 0 .../schema/Output.CommentScriptContents.txt | 0 .../schema/Output.FixInnerHTML.txt | 0 .../schema/Output.FlashCompat.txt | 0 .../ConfigSchema/schema/Output.Newline.txt | 0 .../ConfigSchema/schema/Output.SortAttr.txt | 0 .../ConfigSchema/schema/Output.TidyFormat.txt | 0 .../ConfigSchema/schema/Test.ForceNoIconv.txt | 0 .../schema/URI.AllowedSchemes.txt | 1 + .../ConfigSchema/schema/URI.Base.txt | 0 .../ConfigSchema/schema/URI.DefaultScheme.txt | 7 +- .../ConfigSchema/schema/URI.DefinitionID.txt | 0 .../ConfigSchema/schema/URI.DefinitionRev.txt | 0 .../ConfigSchema/schema/URI.Disable.txt | 0 .../schema/URI.DisableExternal.txt | 0 .../schema/URI.DisableExternalResources.txt | 0 .../schema/URI.DisableResources.txt | 0 .../ConfigSchema/schema/URI.Host.txt | 0 .../ConfigSchema/schema/URI.HostBlacklist.txt | 0 .../ConfigSchema/schema/URI.MakeAbsolute.txt | 0 .../ConfigSchema/schema/URI.Munge.txt | 0 .../schema/URI.MungeResources.txt | 0 .../schema/URI.MungeSecretKey.txt | 0 .../schema/URI.OverrideAllowedSchemes.txt | 0 .../schema/URI.SafeIframeRegexp.txt | 0 .../HTMLPurifier/ConfigSchema/schema/info.ini | 0 .../library}/HTMLPurifier/ContentSets.php | 0 .../library}/HTMLPurifier/Context.php | 0 .../library}/HTMLPurifier/Definition.php | 0 .../library}/HTMLPurifier/DefinitionCache.php | 2 +- .../DefinitionCache/Decorator.php | 0 .../DefinitionCache/Decorator/Cleanup.php | 0 .../DefinitionCache/Decorator/Memory.php | 0 .../DefinitionCache/Decorator/Template.php.in | 0 .../HTMLPurifier/DefinitionCache/Null.php | 0 .../DefinitionCache/Serializer.php | 46 +- .../DefinitionCache/Serializer/README | 0 .../HTMLPurifier/DefinitionCacheFactory.php | 0 .../library}/HTMLPurifier/Doctype.php | 0 .../library}/HTMLPurifier/DoctypeRegistry.php | 0 .../library}/HTMLPurifier/ElementDef.php | 2 +- .../library}/HTMLPurifier/Encoder.php | 22 +- .../library}/HTMLPurifier/EntityLookup.php | 0 .../HTMLPurifier/EntityLookup/entities.ser | 0 .../library/HTMLPurifier/EntityParser.php | 285 + .../library}/HTMLPurifier/ErrorCollector.php | 0 .../library}/HTMLPurifier/ErrorStruct.php | 0 .../library}/HTMLPurifier/Exception.php | 0 .../library}/HTMLPurifier/Filter.php | 0 .../Filter/ExtractStyleBlocks.php | 5 +- .../library}/HTMLPurifier/Filter/YouTube.php | 8 +- .../library}/HTMLPurifier/Generator.php | 2 +- .../library}/HTMLPurifier/HTMLDefinition.php | 0 .../library}/HTMLPurifier/HTMLModule.php | 7 +- .../library}/HTMLPurifier/HTMLModule/Bdo.php | 0 .../HTMLModule/CommonAttributes.php | 1 + .../library}/HTMLPurifier/HTMLModule/Edit.php | 0 .../HTMLPurifier/HTMLModule/Forms.php | 4 + .../HTMLPurifier/HTMLModule/Hypertext.php | 0 .../HTMLPurifier/HTMLModule/Iframe.php | 0 .../HTMLPurifier/HTMLModule/Image.php | 0 .../HTMLPurifier/HTMLModule/Legacy.php | 0 .../library}/HTMLPurifier/HTMLModule/List.php | 0 .../library}/HTMLPurifier/HTMLModule/Name.php | 0 .../HTMLPurifier/HTMLModule/Nofollow.php | 0 .../HTMLModule/NonXMLCommonAttributes.php | 0 .../HTMLPurifier/HTMLModule/Object.php | 0 .../HTMLPurifier/HTMLModule/Presentation.php | 0 .../HTMLPurifier/HTMLModule/Proprietary.php | 0 .../library}/HTMLPurifier/HTMLModule/Ruby.php | 0 .../HTMLPurifier/HTMLModule/SafeEmbed.php | 0 .../HTMLPurifier/HTMLModule/SafeObject.php | 0 .../HTMLPurifier/HTMLModule/SafeScripting.php | 4 +- .../HTMLPurifier/HTMLModule/Scripting.php | 0 .../HTMLModule/StyleAttribute.php | 0 .../HTMLPurifier/HTMLModule/Tables.php | 0 .../HTMLPurifier/HTMLModule/Target.php | 0 .../HTMLPurifier/HTMLModule/TargetBlank.php | 0 .../HTMLModule/TargetNoopener.php | 21 + .../HTMLModule/TargetNoreferrer.php | 21 + .../library}/HTMLPurifier/HTMLModule/Text.php | 0 .../library}/HTMLPurifier/HTMLModule/Tidy.php | 5 +- .../HTMLPurifier/HTMLModule/Tidy/Name.php | 0 .../HTMLModule/Tidy/Proprietary.php | 0 .../HTMLPurifier/HTMLModule/Tidy/Strict.php | 0 .../HTMLModule/Tidy/Transitional.php | 0 .../HTMLPurifier/HTMLModule/Tidy/XHTML.php | 0 .../HTMLModule/Tidy/XHTMLAndHTML4.php | 5 +- .../HTMLModule/XMLCommonAttributes.php | 0 .../HTMLPurifier/HTMLModuleManager.php | 8 + .../library}/HTMLPurifier/IDAccumulator.php | 0 .../library}/HTMLPurifier/Injector.php | 12 +- .../HTMLPurifier/Injector/AutoParagraph.php | 0 .../HTMLPurifier/Injector/DisplayLinkURI.php | 0 .../HTMLPurifier/Injector/Linkify.php | 14 +- .../HTMLPurifier/Injector/PurifierLinkify.php | 0 .../HTMLPurifier/Injector/RemoveEmpty.php | 21 +- .../Injector/RemoveSpansWithoutAttributes.php | 15 +- .../HTMLPurifier/Injector/SafeObject.php | 7 +- .../library}/HTMLPurifier/Language.php | 0 .../HTMLPurifier/Language/messages/en.php | 0 .../library}/HTMLPurifier/LanguageFactory.php | 0 .../library}/HTMLPurifier/Length.php | 8 +- .../library}/HTMLPurifier/Lexer.php | 60 +- .../library}/HTMLPurifier/Lexer/DOMLex.php | 104 +- .../library}/HTMLPurifier/Lexer/DirectLex.php | 16 +- .../library}/HTMLPurifier/Lexer/PH5P.php | 16 +- .../library}/HTMLPurifier/Node.php | 0 .../library}/HTMLPurifier/Node/Comment.php | 0 .../library}/HTMLPurifier/Node/Element.php | 0 .../library}/HTMLPurifier/Node/Text.php | 0 .../library}/HTMLPurifier/PercentEncoder.php | 0 .../library}/HTMLPurifier/Printer.php | 0 .../HTMLPurifier/Printer/CSSDefinition.php | 0 .../HTMLPurifier/Printer/ConfigForm.css | 0 .../HTMLPurifier/Printer/ConfigForm.js | 0 .../HTMLPurifier/Printer/ConfigForm.php | 8 +- .../HTMLPurifier/Printer/HTMLDefinition.php | 4 +- .../library}/HTMLPurifier/PropertyList.php | 0 .../HTMLPurifier/PropertyListIterator.php | 1 + .../library}/HTMLPurifier/Queue.php | 0 .../library}/HTMLPurifier/Strategy.php | 0 .../HTMLPurifier/Strategy/Composite.php | 0 .../library}/HTMLPurifier/Strategy/Core.php | 0 .../HTMLPurifier/Strategy/FixNesting.php | 0 .../HTMLPurifier/Strategy/MakeWellFormed.php | 67 +- .../Strategy/RemoveForeignElements.php | 0 .../Strategy/ValidateAttributes.php | 0 .../library}/HTMLPurifier/StringHash.php | 1 + .../HTMLPurifier/StringHashParser.php | 0 .../library}/HTMLPurifier/TagTransform.php | 0 .../HTMLPurifier/TagTransform/Font.php | 2 +- .../HTMLPurifier/TagTransform/Simple.php | 0 .../library}/HTMLPurifier/Token.php | 2 +- .../library}/HTMLPurifier/Token/Comment.php | 0 .../library}/HTMLPurifier/Token/Empty.php | 0 .../library}/HTMLPurifier/Token/End.php | 0 .../library}/HTMLPurifier/Token/Start.php | 0 .../library}/HTMLPurifier/Token/Tag.php | 0 .../library}/HTMLPurifier/Token/Text.php | 0 .../library}/HTMLPurifier/TokenFactory.php | 0 .../library}/HTMLPurifier/URI.php | 12 +- .../library}/HTMLPurifier/URIDefinition.php | 0 .../library}/HTMLPurifier/URIFilter.php | 0 .../URIFilter/DisableExternal.php | 0 .../URIFilter/DisableExternalResources.php | 0 .../URIFilter/DisableResources.php | 0 .../HTMLPurifier/URIFilter/HostBlacklist.php | 2 +- .../HTMLPurifier/URIFilter/MakeAbsolute.php | 0 .../library}/HTMLPurifier/URIFilter/Munge.php | 10 +- .../HTMLPurifier/URIFilter/SafeIframe.php | 0 .../library}/HTMLPurifier/URIParser.php | 0 .../library}/HTMLPurifier/URIScheme.php | 0 .../library}/HTMLPurifier/URIScheme/data.php | 11 +- .../library}/HTMLPurifier/URIScheme/file.php | 0 .../library}/HTMLPurifier/URIScheme/ftp.php | 0 .../library}/HTMLPurifier/URIScheme/http.php | 0 .../library}/HTMLPurifier/URIScheme/https.php | 0 .../HTMLPurifier/URIScheme/mailto.php | 0 .../library}/HTMLPurifier/URIScheme/news.php | 0 .../library}/HTMLPurifier/URIScheme/nntp.php | 0 .../library/HTMLPurifier/URIScheme/tel.php | 46 + .../HTMLPurifier/URISchemeRegistry.php | 0 .../library}/HTMLPurifier/UnitConverter.php | 0 .../library}/HTMLPurifier/VarParser.php | 32 +- .../HTMLPurifier/VarParser/Flexible.php | 10 +- .../HTMLPurifier/VarParser/Native.php | 0 .../HTMLPurifier/VarParserException.php | 0 .../library}/HTMLPurifier/Zipper.php | 0 web/app/vendor/htmlpurifier/.htaccess | 1 - .../htmlpurifier/HTMLPurifier.composer.php | 4 - .../HTMLPurifier/AttrDef/CSS/Color.php | 105 - .../HTMLPurifier/ConfigSchema/schema.ser | Bin 15000 -> 0 bytes .../schema/Core.ColorKeywords.txt | 29 - .../HTMLPurifier/EntityParser.php | 153 - .../Language/classes/en-x-test.php | 9 - .../Language/messages/en-x-test.php | 11 - .../Language/messages/en-x-testmini.php | 12 - web/app/vendor/phpmailer/.gitignore | 5 - web/app/vendor/phpmailer/.htaccess | 1 - web/app/vendor/phpmailer/.scrutinizer.yml | 126 - web/app/vendor/phpmailer/.travis.yml | 33 - .../vendor/phpmailer/PHPMailerAutoload.php | 50 - web/app/vendor/phpmailer/README.md | 151 - web/app/vendor/phpmailer/changelog.md | 556 -- web/app/vendor/phpmailer/class.phpmailer.php | 3454 ----------- web/app/vendor/phpmailer/class.pop3.php | 397 -- web/app/vendor/phpmailer/class.smtp.php | 956 ---- web/app/vendor/phpmailer/composer.json | 33 - .../docs/Callback_function_notes.txt | 17 - .../phpmailer/docs/DomainKeys_notes.txt | 55 - .../docs/Note_for_SMTP_debugging.txt | 17 - web/app/vendor/phpmailer/docs/extending.html | 128 - web/app/vendor/phpmailer/docs/faq.html | 28 - web/app/vendor/phpmailer/docs/generatedocs.sh | 8 - .../vendor/phpmailer/docs/pop3_article.txt | 50 - web/app/vendor/phpmailer/examples/LGPLv3.txt | 165 - .../phpmailer/examples/code_generator.phps | 596 -- .../vendor/phpmailer/examples/contents.html | 17 - .../vendor/phpmailer/examples/exceptions.phps | 41 - web/app/vendor/phpmailer/examples/gmail.phps | 79 - .../phpmailer/examples/images/phpmailer.png | Bin 5831 -> 0 bytes .../examples/images/phpmailer_mini.png | Bin 1842 -> 0 bytes web/app/vendor/phpmailer/examples/index.html | 45 - web/app/vendor/phpmailer/examples/mail.phps | 37 - .../phpmailer/examples/mailing_list.phps | 55 - .../phpmailer/examples/pop_before_smtp.phps | 60 - .../phpmailer/examples/scripts/XRegExp.js | 664 --- .../examples/scripts/shAutoloader.js | 122 - .../phpmailer/examples/scripts/shBrushPhp.js | 72 - .../phpmailer/examples/scripts/shCore.js | 1 - .../phpmailer/examples/scripts/shLegacy.js | 141 - .../vendor/phpmailer/examples/sendmail.phps | 39 - web/app/vendor/phpmailer/examples/smtp.phps | 61 - .../phpmailer/examples/smtp_no_auth.phps | 57 - .../phpmailer/examples/styles/shCore.css | 46 - .../examples/styles/shCoreDefault.css | 77 - .../examples/styles/shCoreDjango.css | 78 - .../examples/styles/shCoreEclipse.css | 80 - .../phpmailer/examples/styles/shCoreEmacs.css | 76 - .../examples/styles/shCoreFadeToGrey.css | 77 - .../examples/styles/shCoreMDUltra.css | 76 - .../examples/styles/shCoreMidnight.css | 76 - .../phpmailer/examples/styles/shCoreRDark.css | 76 - .../examples/styles/shThemeAppleScript.css | 21 - .../examples/styles/shThemeDefault.css | 31 - .../examples/styles/shThemeDjango.css | 32 - .../examples/styles/shThemeEclipse.css | 34 - .../examples/styles/shThemeEmacs.css | 30 - .../examples/styles/shThemeFadeToGrey.css | 31 - .../examples/styles/shThemeMDUltra.css | 30 - .../examples/styles/shThemeMidnight.css | 30 - .../examples/styles/shThemeRDark.css | 30 - .../examples/styles/shThemeVisualStudio.css | 31 - .../phpmailer/examples/styles/wrapping.png | Bin 631 -> 0 bytes .../vendor/phpmailer/extras/EasyPeasyICS.php | 90 - web/app/vendor/phpmailer/extras/README.md | 21 - .../phpmailer/extras/class.html2text.php | 677 --- .../vendor/phpmailer/extras/htmlfilter.php | 874 --- .../phpmailer/extras/ntlm_sasl_client.php | 185 - .../phpmailer/language/phpmailer.lang-br.php | 26 - .../phpmailer/language/phpmailer.lang-ch.php | 25 - .../phpmailer/language/phpmailer.lang-de.php | 24 - .../phpmailer/language/phpmailer.lang-dk.php | 25 - .../phpmailer/language/phpmailer.lang-el.php | 24 - .../phpmailer/language/phpmailer.lang-es.php | 25 - .../phpmailer/language/phpmailer.lang-fr.php | 28 - .../phpmailer/language/phpmailer.lang-ja.php | 26 - .../phpmailer/language/phpmailer.lang-ka.php | 25 - .../phpmailer/language/phpmailer.lang-no.php | 24 - .../phpmailer/language/phpmailer.lang-ro.php | 25 - .../phpmailer/language/phpmailer.lang-vi.php | 25 - .../phpmailer/language/phpmailer.lang-zh.php | 26 - .../language/phpmailer.lang-zh_cn.php | 26 - web/app/vendor/phpmailer/phpmailer/COMMITMENT | 46 + web/app/vendor/phpmailer/phpmailer/LICENSE | 502 ++ web/app/vendor/phpmailer/phpmailer/README.md | 230 + .../vendor/phpmailer/phpmailer/SECURITY.md | 37 + web/app/vendor/phpmailer/phpmailer/VERSION | 1 + .../vendor/phpmailer/phpmailer/composer.json | 76 + .../phpmailer/phpmailer/get_oauth_token.php | 162 + .../phpmailer/language/phpmailer.lang-af.php | 26 + .../language/phpmailer.lang-ar.php | 7 +- .../phpmailer/language/phpmailer.lang-az.php | 27 + .../phpmailer/language/phpmailer.lang-ba.php | 27 + .../language/phpmailer.lang-be.php | 2 + .../phpmailer/language/phpmailer.lang-bg.php | 27 + .../language/phpmailer.lang-ca.php | 4 +- .../language/phpmailer.lang-cs.php} | 4 + .../phpmailer/language/phpmailer.lang-da.php | 35 + .../phpmailer/language/phpmailer.lang-de.php | 28 + .../phpmailer/language/phpmailer.lang-el.php | 33 + .../language/phpmailer.lang-eo.php | 2 + .../phpmailer/language/phpmailer.lang-es.php | 27 + .../language/phpmailer.lang-et.php | 4 +- .../language/phpmailer.lang-fa.php | 2 + .../language/phpmailer.lang-fi.php | 4 +- .../language/phpmailer.lang-fo.php | 4 +- .../phpmailer/language/phpmailer.lang-fr.php | 38 + .../language/phpmailer.lang-gl.php | 2 + .../language/phpmailer.lang-he.php | 4 +- .../phpmailer/language/phpmailer.lang-hi.php | 27 + .../language/phpmailer.lang-hr.php | 4 +- .../language/phpmailer.lang-hu.php | 2 + .../phpmailer/language/phpmailer.lang-hy.php | 27 + .../phpmailer/language/phpmailer.lang-id.php | 31 + .../language/phpmailer.lang-it.php | 4 +- .../phpmailer/language/phpmailer.lang-ja.php | 29 + .../phpmailer/language/phpmailer.lang-ka.php | 27 + .../phpmailer/language/phpmailer.lang-ko.php | 27 + .../language/phpmailer.lang-lt.php | 4 +- .../language/phpmailer.lang-lv.php | 4 +- .../phpmailer/language/phpmailer.lang-mg.php | 27 + .../phpmailer/language/phpmailer.lang-mn.php | 27 + .../phpmailer/language/phpmailer.lang-ms.php | 27 + .../phpmailer/language/phpmailer.lang-nb.php | 26 + .../language/phpmailer.lang-nl.php | 15 +- .../language/phpmailer.lang-pl.php | 15 +- .../language/phpmailer.lang-pt.php | 2 + .../language/phpmailer.lang-pt_br.php | 38 + .../phpmailer/language/phpmailer.lang-ro.php | 33 + .../language/phpmailer.lang-ru.php | 25 +- .../language/phpmailer.lang-sk.php | 7 +- .../phpmailer/language/phpmailer.lang-sl.php | 36 + .../language/phpmailer.lang-sr.php | 15 +- .../language/phpmailer.lang-sr_latn.php | 28 + .../language/phpmailer.lang-sv.php} | 12 +- .../phpmailer/language/phpmailer.lang-tl.php | 28 + .../language/phpmailer.lang-tr.php | 3 + .../language/phpmailer.lang-uk.php | 23 +- .../phpmailer/language/phpmailer.lang-vi.php | 27 + .../phpmailer/language/phpmailer.lang-zh.php | 29 + .../language/phpmailer.lang-zh_cn.php | 29 + .../phpmailer/phpmailer/src/Exception.php | 40 + .../vendor/phpmailer/phpmailer/src/OAuth.php | 139 + .../phpmailer/src/OAuthTokenProvider.php | 44 + .../phpmailer/phpmailer/src/PHPMailer.php | 5088 +++++++++++++++++ .../vendor/phpmailer/phpmailer/src/POP3.php | 462 ++ .../vendor/phpmailer/phpmailer/src/SMTP.php | 1458 +++++ web/app/vendor/phpmailer/test/bootstrap.php | 5 - .../vendor/phpmailer/test/fakepopserver.sh | 125 - web/app/vendor/phpmailer/test/fakesendmail.sh | 22 - .../phpmailer/test/phpmailerLangTest.php | 76 - .../vendor/phpmailer/test/phpmailerTest.php | 1437 ----- .../vendor/phpmailer/test/runfakepopserver.sh | 10 - .../vendor/phpmailer/test/test_callback.php | 81 - .../phpmailer/test/testbootstrap-dist.php | 7 - .../vendor/phpmailer/travis.phpunit.xml.dist | 35 - 546 files changed, 11078 insertions(+), 13910 deletions(-) create mode 100644 web/app/vendor/ezyang/htmlpurifier/CHANGELOG.md create mode 100644 web/app/vendor/ezyang/htmlpurifier/CREDITS rename web/app/vendor/{phpmailer => ezyang/htmlpurifier}/LICENSE (99%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/README.md create mode 100644 web/app/vendor/ezyang/htmlpurifier/VERSION create mode 100644 web/app/vendor/ezyang/htmlpurifier/composer.json rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier.auto.php (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload-legacy.php rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier.autoload.php (81%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier.composer.php rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier.func.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier.includes.php (96%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier.kses.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier.path.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier.php (95%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier.safe-includes.php (96%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Arborize.php (94%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrCollections.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef.php (94%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS.php (71%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/AlphaValue.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Background.php (96%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Border.php (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Composite.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Filter.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Font.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/FontFamily.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Ident.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Length.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/ListStyle.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Multiple.php (96%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Number.php (90%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/Percentage.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/TextDecoration.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/CSS/URI.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/Clone.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/Enum.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/Bool.php (88%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/Class.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/Color.php (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ContentEditable.php rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/FrameTarget.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/ID.php (80%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/Length.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/LinkTypes.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/MultiLength.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/Nmtokens.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/HTML/Pixels.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/Integer.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/Lang.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/Switch.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/Text.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/URI.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/URI/Email.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/URI/Host.php (80%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/URI/IPv4.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrDef/URI/IPv6.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Background.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/BdoDir.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/BgColor.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/BoolToCSS.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Border.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/EnumToCSS.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/ImgRequired.php (90%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/ImgSpace.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Input.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Lang.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Length.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Name.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/NameSync.php (93%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Nofollow.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/SafeEmbed.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/SafeObject.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/SafeParam.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/ScriptRequired.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/TargetBlank.php (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoopener.php create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoreferrer.php rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTransform/Textarea.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrTypes.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/AttrValidator.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Bootstrap.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/CSSDefinition.php (83%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/Chameleon.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/Custom.php (98%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/Empty.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/List.php (88%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/Optional.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/Required.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/StrictBlockquote.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ChildDef/Table.php (98%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Config.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema.php (92%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Builder/Xml.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Exception.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Interchange.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Interchange/Directive.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Interchange/Id.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/InterchangeBuilder.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/Validator.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/ValidatorAtom.php (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema.ser rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ID.HTML5.txt rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.Predicate.txt rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt (89%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowDuplicates.txt rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt (59%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyRemoveScript.txt rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowParseManyTags.txt rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.Language.txt (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LegacyEntityDecoder.txt rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt (72%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Forms.txt rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoopener.txt create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoreferrer.txt rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt (96%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.Base.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt (57%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.Host.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ConfigSchema/schema/info.ini (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ContentSets.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Context.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Definition.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache.php (98%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Decorator.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Decorator/Memory.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Decorator/Template.php.in (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Null.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Serializer.php (86%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCache/Serializer/README (100%) mode change 100644 => 100755 rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/DefinitionCacheFactory.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Doctype.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/DoctypeRegistry.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ElementDef.php (98%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Encoder.php (96%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/EntityLookup.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/EntityLookup/entities.ser (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityParser.php rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ErrorCollector.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/ErrorStruct.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Exception.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Filter.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Filter/ExtractStyleBlocks.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Filter/YouTube.php (84%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Generator.php (99%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLDefinition.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Bdo.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/CommonAttributes.php (92%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Edit.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Forms.php (98%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Hypertext.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Iframe.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Image.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Legacy.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/List.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Name.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Nofollow.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/NonXMLCommonAttributes.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Object.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Presentation.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Proprietary.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Ruby.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/SafeEmbed.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/SafeObject.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/SafeScripting.php (85%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Scripting.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/StyleAttribute.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tables.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Target.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/TargetBlank.php (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetNoopener.php create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/TargetNoreferrer.php rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Text.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy/Name.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy/Proprietary.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy/Strict.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy/Transitional.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy/XHTML.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/Tidy/XHTMLAndHTML4.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModule/XMLCommonAttributes.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/HTMLModuleManager.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/IDAccumulator.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Injector.php (96%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Injector/AutoParagraph.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Injector/DisplayLinkURI.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Injector/Linkify.php (67%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Injector/PurifierLinkify.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Injector/RemoveEmpty.php (81%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Injector/RemoveSpansWithoutAttributes.php (84%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Injector/SafeObject.php (91%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Language.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Language/messages/en.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/LanguageFactory.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Length.php (92%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Lexer.php (86%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Lexer/DOMLex.php (75%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Lexer/DirectLex.php (98%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Lexer/PH5P.php (99%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Node.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Node/Comment.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Node/Element.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Node/Text.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/PercentEncoder.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Printer.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Printer/CSSDefinition.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Printer/ConfigForm.css (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Printer/ConfigForm.js (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Printer/ConfigForm.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Printer/HTMLDefinition.php (98%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/PropertyList.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/PropertyListIterator.php (96%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Queue.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Strategy.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Strategy/Composite.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Strategy/Core.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Strategy/FixNesting.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Strategy/MakeWellFormed.php (88%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Strategy/RemoveForeignElements.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Strategy/ValidateAttributes.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/StringHash.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/StringHashParser.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/TagTransform.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/TagTransform/Font.php (98%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/TagTransform/Simple.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Token.php (97%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Token/Comment.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Token/Empty.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Token/End.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Token/Start.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Token/Tag.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Token/Text.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/TokenFactory.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URI.php (96%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIDefinition.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/DisableExternal.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/DisableExternalResources.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/DisableResources.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/HostBlacklist.php (91%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/MakeAbsolute.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/Munge.php (95%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIFilter/SafeIframe.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIParser.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/data.php (90%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/file.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/ftp.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/http.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/https.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/mailto.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/news.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URIScheme/nntp.php (100%) create mode 100644 web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/tel.php rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/URISchemeRegistry.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/UnitConverter.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/VarParser.php (92%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/VarParser/Flexible.php (96%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/VarParser/Native.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/VarParserException.php (100%) rename web/app/vendor/{htmlpurifier => ezyang/htmlpurifier/library}/HTMLPurifier/Zipper.php (100%) delete mode 100644 web/app/vendor/htmlpurifier/.htaccess delete mode 100644 web/app/vendor/htmlpurifier/HTMLPurifier.composer.php delete mode 100644 web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Color.php delete mode 100644 web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema.ser delete mode 100644 web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt delete mode 100644 web/app/vendor/htmlpurifier/HTMLPurifier/EntityParser.php delete mode 100644 web/app/vendor/htmlpurifier/HTMLPurifier/Language/classes/en-x-test.php delete mode 100644 web/app/vendor/htmlpurifier/HTMLPurifier/Language/messages/en-x-test.php delete mode 100644 web/app/vendor/htmlpurifier/HTMLPurifier/Language/messages/en-x-testmini.php delete mode 100644 web/app/vendor/phpmailer/.gitignore delete mode 100644 web/app/vendor/phpmailer/.htaccess delete mode 100644 web/app/vendor/phpmailer/.scrutinizer.yml delete mode 100644 web/app/vendor/phpmailer/.travis.yml delete mode 100644 web/app/vendor/phpmailer/PHPMailerAutoload.php delete mode 100644 web/app/vendor/phpmailer/README.md delete mode 100644 web/app/vendor/phpmailer/changelog.md delete mode 100644 web/app/vendor/phpmailer/class.phpmailer.php delete mode 100644 web/app/vendor/phpmailer/class.pop3.php delete mode 100644 web/app/vendor/phpmailer/class.smtp.php delete mode 100644 web/app/vendor/phpmailer/composer.json delete mode 100644 web/app/vendor/phpmailer/docs/Callback_function_notes.txt delete mode 100644 web/app/vendor/phpmailer/docs/DomainKeys_notes.txt delete mode 100644 web/app/vendor/phpmailer/docs/Note_for_SMTP_debugging.txt delete mode 100644 web/app/vendor/phpmailer/docs/extending.html delete mode 100644 web/app/vendor/phpmailer/docs/faq.html delete mode 100644 web/app/vendor/phpmailer/docs/generatedocs.sh delete mode 100644 web/app/vendor/phpmailer/docs/pop3_article.txt delete mode 100644 web/app/vendor/phpmailer/examples/LGPLv3.txt delete mode 100644 web/app/vendor/phpmailer/examples/code_generator.phps delete mode 100644 web/app/vendor/phpmailer/examples/contents.html delete mode 100644 web/app/vendor/phpmailer/examples/exceptions.phps delete mode 100644 web/app/vendor/phpmailer/examples/gmail.phps delete mode 100644 web/app/vendor/phpmailer/examples/images/phpmailer.png delete mode 100644 web/app/vendor/phpmailer/examples/images/phpmailer_mini.png delete mode 100644 web/app/vendor/phpmailer/examples/index.html delete mode 100644 web/app/vendor/phpmailer/examples/mail.phps delete mode 100644 web/app/vendor/phpmailer/examples/mailing_list.phps delete mode 100644 web/app/vendor/phpmailer/examples/pop_before_smtp.phps delete mode 100644 web/app/vendor/phpmailer/examples/scripts/XRegExp.js delete mode 100644 web/app/vendor/phpmailer/examples/scripts/shAutoloader.js delete mode 100644 web/app/vendor/phpmailer/examples/scripts/shBrushPhp.js delete mode 100644 web/app/vendor/phpmailer/examples/scripts/shCore.js delete mode 100644 web/app/vendor/phpmailer/examples/scripts/shLegacy.js delete mode 100644 web/app/vendor/phpmailer/examples/sendmail.phps delete mode 100644 web/app/vendor/phpmailer/examples/smtp.phps delete mode 100644 web/app/vendor/phpmailer/examples/smtp_no_auth.phps delete mode 100644 web/app/vendor/phpmailer/examples/styles/shCore.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shCoreDefault.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shCoreDjango.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shCoreEclipse.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shCoreEmacs.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shCoreFadeToGrey.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shCoreMDUltra.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shCoreMidnight.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shCoreRDark.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shThemeAppleScript.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shThemeDefault.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shThemeDjango.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shThemeEclipse.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shThemeEmacs.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shThemeFadeToGrey.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shThemeMDUltra.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shThemeMidnight.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shThemeRDark.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/shThemeVisualStudio.css delete mode 100644 web/app/vendor/phpmailer/examples/styles/wrapping.png delete mode 100644 web/app/vendor/phpmailer/extras/EasyPeasyICS.php delete mode 100644 web/app/vendor/phpmailer/extras/README.md delete mode 100644 web/app/vendor/phpmailer/extras/class.html2text.php delete mode 100644 web/app/vendor/phpmailer/extras/htmlfilter.php delete mode 100644 web/app/vendor/phpmailer/extras/ntlm_sasl_client.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-br.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-ch.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-de.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-dk.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-el.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-es.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-fr.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-ja.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-ka.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-no.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-ro.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-vi.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-zh.php delete mode 100644 web/app/vendor/phpmailer/language/phpmailer.lang-zh_cn.php create mode 100644 web/app/vendor/phpmailer/phpmailer/COMMITMENT create mode 100644 web/app/vendor/phpmailer/phpmailer/LICENSE create mode 100644 web/app/vendor/phpmailer/phpmailer/README.md create mode 100644 web/app/vendor/phpmailer/phpmailer/SECURITY.md create mode 100644 web/app/vendor/phpmailer/phpmailer/VERSION create mode 100644 web/app/vendor/phpmailer/phpmailer/composer.json create mode 100644 web/app/vendor/phpmailer/phpmailer/get_oauth_token.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-ar.php (91%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-ba.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-be.php (96%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-ca.php (95%) rename web/app/vendor/phpmailer/{language/phpmailer.lang-cz.php => phpmailer/language/phpmailer.lang-cs.php} (87%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-el.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-eo.php (96%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-es.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-et.php (90%) rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-fa.php (96%) rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-fi.php (92%) rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-fo.php (91%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-gl.php (96%) rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-he.php (96%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-hr.php (94%) rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-hu.php (95%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-hy.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-it.php (90%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-lt.php (91%) rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-lv.php (91%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-mn.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-ms.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-nl.php (58%) rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-pl.php (71%) rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-pt.php (96%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-ru.php (54%) rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-sk.php (81%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-sr.php (75%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr_latn.php rename web/app/vendor/phpmailer/{language/phpmailer.lang-se.php => phpmailer/language/phpmailer.lang-sv.php} (73%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-tr.php (94%) rename web/app/vendor/phpmailer/{ => phpmailer}/language/phpmailer.lang-uk.php (59%) create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php create mode 100644 web/app/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php create mode 100644 web/app/vendor/phpmailer/phpmailer/src/Exception.php create mode 100644 web/app/vendor/phpmailer/phpmailer/src/OAuth.php create mode 100644 web/app/vendor/phpmailer/phpmailer/src/OAuthTokenProvider.php create mode 100644 web/app/vendor/phpmailer/phpmailer/src/PHPMailer.php create mode 100644 web/app/vendor/phpmailer/phpmailer/src/POP3.php create mode 100644 web/app/vendor/phpmailer/phpmailer/src/SMTP.php delete mode 100644 web/app/vendor/phpmailer/test/bootstrap.php delete mode 100644 web/app/vendor/phpmailer/test/fakepopserver.sh delete mode 100644 web/app/vendor/phpmailer/test/fakesendmail.sh delete mode 100644 web/app/vendor/phpmailer/test/phpmailerLangTest.php delete mode 100644 web/app/vendor/phpmailer/test/phpmailerTest.php delete mode 100644 web/app/vendor/phpmailer/test/runfakepopserver.sh delete mode 100644 web/app/vendor/phpmailer/test/test_callback.php delete mode 100644 web/app/vendor/phpmailer/test/testbootstrap-dist.php delete mode 100644 web/app/vendor/phpmailer/travis.phpunit.xml.dist diff --git a/web/app/composer.json b/web/app/composer.json index 95af6bf..386b74e 100644 --- a/web/app/composer.json +++ b/web/app/composer.json @@ -1,5 +1,7 @@ { "require": { - "gregwar/captcha": "^1.1" + "gregwar/captcha": "^1.1", + "phpmailer/phpmailer": "^6.6", + "ezyang/htmlpurifier": "^4.16" } } diff --git a/web/app/vendor/composer/autoload_files.php b/web/app/vendor/composer/autoload_files.php index b98bebf..0b49593 100644 --- a/web/app/vendor/composer/autoload_files.php +++ b/web/app/vendor/composer/autoload_files.php @@ -8,4 +8,5 @@ $baseDir = dirname($vendorDir); return array( '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php', 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php', + '2cffec82183ee1cea088009cef9a6fc3' => $vendorDir . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', ); diff --git a/web/app/vendor/composer/autoload_namespaces.php b/web/app/vendor/composer/autoload_namespaces.php index b7fc012..1ee7a39 100644 --- a/web/app/vendor/composer/autoload_namespaces.php +++ b/web/app/vendor/composer/autoload_namespaces.php @@ -6,4 +6,5 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( + 'HTMLPurifier' => array($vendorDir . '/ezyang/htmlpurifier/library'), ); diff --git a/web/app/vendor/composer/autoload_psr4.php b/web/app/vendor/composer/autoload_psr4.php index 4ea612d..d7892aa 100644 --- a/web/app/vendor/composer/autoload_psr4.php +++ b/web/app/vendor/composer/autoload_psr4.php @@ -8,5 +8,6 @@ $baseDir = dirname($vendorDir); return array( 'Symfony\\Polyfill\\Php80\\' => array($vendorDir . '/symfony/polyfill-php80'), 'Symfony\\Component\\Finder\\' => array($vendorDir . '/symfony/finder'), + 'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'), 'Gregwar\\' => array($vendorDir . '/gregwar/captcha/src/Gregwar'), ); diff --git a/web/app/vendor/composer/autoload_static.php b/web/app/vendor/composer/autoload_static.php index cd32eee..1b7c7cd 100644 --- a/web/app/vendor/composer/autoload_static.php +++ b/web/app/vendor/composer/autoload_static.php @@ -9,6 +9,7 @@ class ComposerStaticInit0d7c2cd5c2dbf2120e4372996869e900 public static $files = array ( '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php', 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', + '2cffec82183ee1cea088009cef9a6fc3' => __DIR__ . '/..' . '/ezyang/htmlpurifier/library/HTMLPurifier.composer.php', ); public static $prefixLengthsPsr4 = array ( @@ -17,6 +18,10 @@ class ComposerStaticInit0d7c2cd5c2dbf2120e4372996869e900 'Symfony\\Polyfill\\Php80\\' => 23, 'Symfony\\Component\\Finder\\' => 25, ), + 'P' => + array ( + 'PHPMailer\\PHPMailer\\' => 20, + ), 'G' => array ( 'Gregwar\\' => 8, @@ -32,12 +37,26 @@ class ComposerStaticInit0d7c2cd5c2dbf2120e4372996869e900 array ( 0 => __DIR__ . '/..' . '/symfony/finder', ), + 'PHPMailer\\PHPMailer\\' => + array ( + 0 => __DIR__ . '/..' . '/phpmailer/phpmailer/src', + ), 'Gregwar\\' => array ( 0 => __DIR__ . '/..' . '/gregwar/captcha/src/Gregwar', ), ); + public static $prefixesPsr0 = array ( + 'H' => + array ( + 'HTMLPurifier' => + array ( + 0 => __DIR__ . '/..' . '/ezyang/htmlpurifier/library', + ), + ), + ); + public static $classMap = array ( 'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', 'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php', @@ -51,6 +70,7 @@ class ComposerStaticInit0d7c2cd5c2dbf2120e4372996869e900 return \Closure::bind(function () use ($loader) { $loader->prefixLengthsPsr4 = ComposerStaticInit0d7c2cd5c2dbf2120e4372996869e900::$prefixLengthsPsr4; $loader->prefixDirsPsr4 = ComposerStaticInit0d7c2cd5c2dbf2120e4372996869e900::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInit0d7c2cd5c2dbf2120e4372996869e900::$prefixesPsr0; $loader->classMap = ComposerStaticInit0d7c2cd5c2dbf2120e4372996869e900::$classMap; }, null, ClassLoader::class); diff --git a/web/app/vendor/composer/installed.json b/web/app/vendor/composer/installed.json index 096bdf6..3a63e6b 100644 --- a/web/app/vendor/composer/installed.json +++ b/web/app/vendor/composer/installed.json @@ -1,4 +1,63 @@ [ + { + "name": "ezyang/htmlpurifier", + "version": "v4.16.0", + "version_normalized": "4.16.0.0", + "source": { + "type": "git", + "url": "https://github.com/ezyang/htmlpurifier.git", + "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8", + "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8", + "shasum": "" + }, + "require": { + "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0" + }, + "require-dev": { + "cerdic/css-tidy": "^1.7 || ^2.0", + "simpletest/simpletest": "dev-master" + }, + "suggest": { + "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.", + "ext-bcmath": "Used for unit conversion and imagecrash protection", + "ext-iconv": "Converts text to and from non-UTF-8 encodings", + "ext-tidy": "Used for pretty-printing HTML" + }, + "time": "2022-09-18T07:06:19+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "library/HTMLPurifier.composer.php" + ], + "psr-0": { + "HTMLPurifier": "library/" + }, + "exclude-from-classmap": [ + "/library/HTMLPurifier/Language/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-or-later" + ], + "authors": [ + { + "name": "Edward Z. Yang", + "email": "admin@htmlpurifier.org", + "homepage": "http://ezyang.com" + } + ], + "description": "Standards compliant HTML filter written in PHP", + "homepage": "http://htmlpurifier.org/", + "keywords": [ + "html" + ] + }, { "name": "gregwar/captcha", "version": "v1.1.9", @@ -54,6 +113,82 @@ "spam" ] }, + { + "name": "phpmailer/phpmailer", + "version": "v6.6.5", + "version_normalized": "6.6.5.0", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/8b6386d7417526d1ea4da9edb70b8352f7543627", + "reference": "8b6386d7417526d1ea4da9edb70b8352f7543627", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "doctrine/annotations": "^1.2", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9.3.5", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.6.2", + "yoast/phpunit-polyfills": "^1.0.0" + }, + "suggest": { + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)", + "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication" + }, + "time": "2022-10-07T12:23:10+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ] + }, { "name": "symfony/deprecation-contracts", "version": "v2.5.2", diff --git a/web/app/vendor/ezyang/htmlpurifier/CHANGELOG.md b/web/app/vendor/ezyang/htmlpurifier/CHANGELOG.md new file mode 100644 index 0000000..55cb902 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/CHANGELOG.md @@ -0,0 +1,6 @@ +# [4.16.0](https://github.com/ezyang/htmlpurifier/compare/v4.15.0...v4.16.0) (2022-09-18) + + +### Features + +* add semantic release ([#307](https://github.com/ezyang/htmlpurifier/issues/307)) ([db31243](https://github.com/ezyang/htmlpurifier/commit/db312435cb9d8d73395f75f9642a43ba6de5e903)), closes [#322](https://github.com/ezyang/htmlpurifier/issues/322) [#323](https://github.com/ezyang/htmlpurifier/issues/323) [#326](https://github.com/ezyang/htmlpurifier/issues/326) [#327](https://github.com/ezyang/htmlpurifier/issues/327) [#328](https://github.com/ezyang/htmlpurifier/issues/328) [#329](https://github.com/ezyang/htmlpurifier/issues/329) [#330](https://github.com/ezyang/htmlpurifier/issues/330) [#331](https://github.com/ezyang/htmlpurifier/issues/331) [#332](https://github.com/ezyang/htmlpurifier/issues/332) [#333](https://github.com/ezyang/htmlpurifier/issues/333) [#337](https://github.com/ezyang/htmlpurifier/issues/337) [#335](https://github.com/ezyang/htmlpurifier/issues/335) [ezyang/htmlpurifier#334](https://github.com/ezyang/htmlpurifier/issues/334) [#336](https://github.com/ezyang/htmlpurifier/issues/336) [#338](https://github.com/ezyang/htmlpurifier/issues/338) diff --git a/web/app/vendor/ezyang/htmlpurifier/CREDITS b/web/app/vendor/ezyang/htmlpurifier/CREDITS new file mode 100644 index 0000000..7921b45 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/CREDITS @@ -0,0 +1,9 @@ + +CREDITS + +Almost everything written by Edward Z. Yang (Ambush Commander). Lots of thanks +to the DevNetwork Community for their help (see docs/ref-devnetwork.html for +more details), Feyd especially (namely IPv6 and optimization). Thanks to RSnake +for letting me package his fantastic XSS cheatsheet for a smoketest. + + vim: et sw=4 sts=4 diff --git a/web/app/vendor/phpmailer/LICENSE b/web/app/vendor/ezyang/htmlpurifier/LICENSE similarity index 99% rename from web/app/vendor/phpmailer/LICENSE rename to web/app/vendor/ezyang/htmlpurifier/LICENSE index 8e0763d..8c88a20 100644 --- a/web/app/vendor/phpmailer/LICENSE +++ b/web/app/vendor/ezyang/htmlpurifier/LICENSE @@ -2,7 +2,7 @@ Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -55,7 +55,7 @@ modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. - + Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a @@ -111,7 +111,7 @@ modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. - + GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION @@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. - + 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an @@ -158,7 +158,7 @@ Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. - + 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 @@ -216,7 +216,7 @@ instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. - + Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. @@ -267,7 +267,7 @@ Library will still fall under Section 6.) distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. - + 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work @@ -312,7 +312,7 @@ of these things: from a designated place, offer equivalent access to copy the above specified materials from the same place. - e) verify that the user has already received a copy of these + e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the @@ -329,7 +329,7 @@ restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. - + 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined @@ -370,7 +370,7 @@ subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. - + 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or @@ -422,7 +422,7 @@ conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. - + 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is @@ -456,7 +456,7 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS - + How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest @@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. @@ -501,4 +501,4 @@ necessary. Here is a sample; alter the names: That's all there is to it! - + vim: et sw=4 sts=4 diff --git a/web/app/vendor/ezyang/htmlpurifier/README.md b/web/app/vendor/ezyang/htmlpurifier/README.md new file mode 100644 index 0000000..e6b7199 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/README.md @@ -0,0 +1,29 @@ +HTML Purifier [![Build Status](https://github.com/ezyang/htmlpurifier/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/ezyang/htmlpurifier/actions/workflows/ci.yml) +============= + +HTML Purifier is an HTML filtering solution that uses a unique combination +of robust whitelists and aggressive parsing to ensure that not only are +XSS attacks thwarted, but the resulting HTML is standards compliant. + +HTML Purifier is oriented towards richly formatted documents from +untrusted sources that require CSS and a full tag-set. This library can +be configured to accept a more restrictive set of tags, but it won't be +as efficient as more bare-bones parsers. It will, however, do the job +right, which may be more important. + +Places to go: + +* See INSTALL for a quick installation guide +* See docs/ for developer-oriented documentation, code examples and + an in-depth installation guide. +* See WYSIWYG for information on editors like TinyMCE and FCKeditor + +HTML Purifier can be found on the web at: [http://htmlpurifier.org/](http://htmlpurifier.org/) + +## Installation + +Package available on [Composer](https://packagist.org/packages/ezyang/htmlpurifier). + +If you're using Composer to manage dependencies, you can use + + $ composer require ezyang/htmlpurifier diff --git a/web/app/vendor/ezyang/htmlpurifier/VERSION b/web/app/vendor/ezyang/htmlpurifier/VERSION new file mode 100644 index 0000000..f029ee5 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/VERSION @@ -0,0 +1 @@ +4.15.0 \ No newline at end of file diff --git a/web/app/vendor/ezyang/htmlpurifier/composer.json b/web/app/vendor/ezyang/htmlpurifier/composer.json new file mode 100644 index 0000000..d755829 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/composer.json @@ -0,0 +1,44 @@ +{ + "name": "ezyang/htmlpurifier", + "description": "Standards compliant HTML filter written in PHP", + "type": "library", + "keywords": ["html"], + "homepage": "http://htmlpurifier.org/", + "license": "LGPL-2.1-or-later", + "authors": [ + { + "name": "Edward Z. Yang", + "email": "admin@htmlpurifier.org", + "homepage": "http://ezyang.com" + } + ], + "require": { + "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0" + }, + "require-dev": { + "cerdic/css-tidy": "^1.7 || ^2.0", + "simpletest/simpletest": "dev-master" + }, + "autoload": { + "psr-0": { "HTMLPurifier": "library/" }, + "files": ["library/HTMLPurifier.composer.php"], + "exclude-from-classmap": [ + "/library/HTMLPurifier/Language/" + ] + }, + "suggest": { + "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.", + "ext-iconv": "Converts text to and from non-UTF-8 encodings", + "ext-bcmath": "Used for unit conversion and imagecrash protection", + "ext-tidy": "Used for pretty-printing HTML" + }, + "config": { + "sort-packages": true + }, + "repositories": [ + { + "type": "vcs", + "url": "https://github.com/ezyang/simpletest.git" + } + ] +} diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier.auto.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier.auto.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier.auto.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier.auto.php diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload-legacy.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload-legacy.php new file mode 100644 index 0000000..0a17ee4 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier.autoload-legacy.php @@ -0,0 +1,14 @@ + $html) { - $array_of_html[$key] = $this->purify($html, $config); + $array = array(); + foreach($array_of_html as $key=>$value){ + if (is_array($value)) { + $array[$key] = $this->purifyArray($value, $config); + } else { + $array[$key] = $this->purify($value, $config); + } $context_array[$key] = $this->context; } $this->context = $context_array; - return $array_of_html; + return $array; } /** diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier.safe-includes.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier.safe-includes.php similarity index 96% rename from web/app/vendor/htmlpurifier/HTMLPurifier.safe-includes.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier.safe-includes.php index 9dea6d1..94543f5 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier.safe-includes.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier.safe-includes.php @@ -101,6 +101,7 @@ require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Bool.php'; require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Nmtokens.php'; require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Class.php'; require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Color.php'; +require_once $__dir . '/HTMLPurifier/AttrDef/HTML/ContentEditable.php'; require_once $__dir . '/HTMLPurifier/AttrDef/HTML/FrameTarget.php'; require_once $__dir . '/HTMLPurifier/AttrDef/HTML/ID.php'; require_once $__dir . '/HTMLPurifier/AttrDef/HTML/Pixels.php'; @@ -131,6 +132,8 @@ require_once $__dir . '/HTMLPurifier/AttrTransform/SafeObject.php'; require_once $__dir . '/HTMLPurifier/AttrTransform/SafeParam.php'; require_once $__dir . '/HTMLPurifier/AttrTransform/ScriptRequired.php'; require_once $__dir . '/HTMLPurifier/AttrTransform/TargetBlank.php'; +require_once $__dir . '/HTMLPurifier/AttrTransform/TargetNoopener.php'; +require_once $__dir . '/HTMLPurifier/AttrTransform/TargetNoreferrer.php'; require_once $__dir . '/HTMLPurifier/AttrTransform/Textarea.php'; require_once $__dir . '/HTMLPurifier/ChildDef/Chameleon.php'; require_once $__dir . '/HTMLPurifier/ChildDef/Custom.php'; @@ -169,6 +172,8 @@ require_once $__dir . '/HTMLPurifier/HTMLModule/StyleAttribute.php'; require_once $__dir . '/HTMLPurifier/HTMLModule/Tables.php'; require_once $__dir . '/HTMLPurifier/HTMLModule/Target.php'; require_once $__dir . '/HTMLPurifier/HTMLModule/TargetBlank.php'; +require_once $__dir . '/HTMLPurifier/HTMLModule/TargetNoopener.php'; +require_once $__dir . '/HTMLPurifier/HTMLModule/TargetNoreferrer.php'; require_once $__dir . '/HTMLPurifier/HTMLModule/Text.php'; require_once $__dir . '/HTMLPurifier/HTMLModule/Tidy.php'; require_once $__dir . '/HTMLPurifier/HTMLModule/XMLCommonAttributes.php'; @@ -219,5 +224,6 @@ require_once $__dir . '/HTMLPurifier/URIScheme/https.php'; require_once $__dir . '/HTMLPurifier/URIScheme/mailto.php'; require_once $__dir . '/HTMLPurifier/URIScheme/news.php'; require_once $__dir . '/HTMLPurifier/URIScheme/nntp.php'; +require_once $__dir . '/HTMLPurifier/URIScheme/tel.php'; require_once $__dir . '/HTMLPurifier/VarParser/Flexible.php'; require_once $__dir . '/HTMLPurifier/VarParser/Native.php'; diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/Arborize.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php similarity index 94% rename from web/app/vendor/htmlpurifier/HTMLPurifier/Arborize.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php index 9e6617b..d2e9d22 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/Arborize.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Arborize.php @@ -19,8 +19,8 @@ class HTMLPurifier_Arborize if ($token instanceof HTMLPurifier_Token_End) { $token->start = null; // [MUT] $r = array_pop($stack); - assert($r->name === $token->name); - assert(empty($token->attr)); + //assert($r->name === $token->name); + //assert(empty($token->attr)); $r->endCol = $token->col; $r->endLine = $token->line; $r->endArmor = $token->armor; @@ -32,7 +32,7 @@ class HTMLPurifier_Arborize $stack[] = $node; } } - assert(count($stack) == 1); + //assert(count($stack) == 1); return $stack[0]; } diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrCollections.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php similarity index 97% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrCollections.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php index 4f6c2e3..c7b17cf 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrCollections.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrCollections.php @@ -21,6 +21,11 @@ class HTMLPurifier_AttrCollections * @param HTMLPurifier_HTMLModule[] $modules Hash array of HTMLPurifier_HTMLModule members */ public function __construct($attr_types, $modules) + { + $this->doConstruct($attr_types, $modules); + } + + public function doConstruct($attr_types, $modules) { // load extensions from the modules foreach ($modules as $module) { diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef.php similarity index 94% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef.php index 5ac0652..739646f 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef.php @@ -86,7 +86,13 @@ abstract class HTMLPurifier_AttrDef */ protected function mungeRgb($string) { - return preg_replace('/rgb\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\)/', 'rgb(\1,\2,\3)', $string); + $p = '\s*(\d+(\.\d+)?([%]?))\s*'; + + if (preg_match('/(rgba|hsla)\(/', $string)) { + return preg_replace('/(rgba|hsla)\('.$p.','.$p.','.$p.','.$p.'\)/', '\1(\2,\5,\8,\11)', $string); + } + + return preg_replace('/(rgb|hsl)\('.$p.','.$p.','.$p.'\)/', '\1(\2,\5,\8)', $string); } /** diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php similarity index 71% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php index 02c1641..ad2cb90 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS.php @@ -25,15 +25,42 @@ class HTMLPurifier_AttrDef_CSS extends HTMLPurifier_AttrDef $css = $this->parseCDATA($css); $definition = $config->getCSSDefinition(); + $allow_duplicates = $config->get("CSS.AllowDuplicates"); - // we're going to break the spec and explode by semicolons. - // This is because semicolon rarely appears in escaped form - // Doing this is generally flaky but fast - // IT MIGHT APPEAR IN URIs, see HTMLPurifier_AttrDef_CSSURI - // for details - $declarations = explode(';', $css); + // According to the CSS2.1 spec, the places where a + // non-delimiting semicolon can appear are in strings + // escape sequences. So here is some dumb hack to + // handle quotes. + $len = strlen($css); + $accum = ""; + $declarations = array(); + $quoted = false; + for ($i = 0; $i < $len; $i++) { + $c = strcspn($css, ";'\"", $i); + $accum .= substr($css, $i, $c); + $i += $c; + if ($i == $len) break; + $d = $css[$i]; + if ($quoted) { + $accum .= $d; + if ($d == $quoted) { + $quoted = false; + } + } else { + if ($d == ";") { + $declarations[] = $accum; + $accum = ""; + } else { + $accum .= $d; + $quoted = $d; + } + } + } + if ($accum != "") $declarations[] = $accum; + $propvalues = array(); + $new_declarations = ''; /** * Name of the current CSS property being validated. @@ -83,7 +110,11 @@ class HTMLPurifier_AttrDef_CSS extends HTMLPurifier_AttrDef if ($result === false) { continue; } - $propvalues[$property] = $result; + if ($allow_duplicates) { + $new_declarations .= "$property:$result;"; + } else { + $propvalues[$property] = $result; + } } $context->destroy('CurrentCSSProperty'); @@ -92,7 +123,6 @@ class HTMLPurifier_AttrDef_CSS extends HTMLPurifier_AttrDef // slightly inefficient, but it's the only way of getting rid of // duplicates. Perhaps config to optimize it, but not now. - $new_declarations = ''; foreach ($propvalues as $prop => $value) { $new_declarations .= "$prop:$value;"; } diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/AlphaValue.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/AlphaValue.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php similarity index 96% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php index 7f1ea3b..28c4988 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Background.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Background.php @@ -25,6 +25,7 @@ class HTMLPurifier_AttrDef_CSS_Background extends HTMLPurifier_AttrDef $this->info['background-repeat'] = $def->info['background-repeat']; $this->info['background-attachment'] = $def->info['background-attachment']; $this->info['background-position'] = $def->info['background-position']; + $this->info['background-size'] = $def->info['background-size']; } /** @@ -53,6 +54,7 @@ class HTMLPurifier_AttrDef_CSS_Background extends HTMLPurifier_AttrDef $caught['repeat'] = false; $caught['attachment'] = false; $caught['position'] = false; + $caught['size'] = false; $i = 0; // number of catches diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/BackgroundPosition.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Border.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Border.php diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php new file mode 100644 index 0000000..d7287a0 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Color.php @@ -0,0 +1,161 @@ +alpha = new HTMLPurifier_AttrDef_CSS_AlphaValue(); + } + + /** + * @param string $color + * @param HTMLPurifier_Config $config + * @param HTMLPurifier_Context $context + * @return bool|string + */ + public function validate($color, $config, $context) + { + static $colors = null; + if ($colors === null) { + $colors = $config->get('Core.ColorKeywords'); + } + + $color = trim($color); + if ($color === '') { + return false; + } + + $lower = strtolower($color); + if (isset($colors[$lower])) { + return $colors[$lower]; + } + + if (preg_match('#(rgb|rgba|hsl|hsla)\(#', $color, $matches) === 1) { + $length = strlen($color); + if (strpos($color, ')') !== $length - 1) { + return false; + } + + // get used function : rgb, rgba, hsl or hsla + $function = $matches[1]; + + $parameters_size = 3; + $alpha_channel = false; + if (substr($function, -1) === 'a') { + $parameters_size = 4; + $alpha_channel = true; + } + + /* + * Allowed types for values : + * parameter_position => [type => max_value] + */ + $allowed_types = array( + 1 => array('percentage' => 100, 'integer' => 255), + 2 => array('percentage' => 100, 'integer' => 255), + 3 => array('percentage' => 100, 'integer' => 255), + ); + $allow_different_types = false; + + if (strpos($function, 'hsl') !== false) { + $allowed_types = array( + 1 => array('integer' => 360), + 2 => array('percentage' => 100), + 3 => array('percentage' => 100), + ); + $allow_different_types = true; + } + + $values = trim(str_replace($function, '', $color), ' ()'); + + $parts = explode(',', $values); + if (count($parts) !== $parameters_size) { + return false; + } + + $type = false; + $new_parts = array(); + $i = 0; + + foreach ($parts as $part) { + $i++; + $part = trim($part); + + if ($part === '') { + return false; + } + + // different check for alpha channel + if ($alpha_channel === true && $i === count($parts)) { + $result = $this->alpha->validate($part, $config, $context); + + if ($result === false) { + return false; + } + + $new_parts[] = (string)$result; + continue; + } + + if (substr($part, -1) === '%') { + $current_type = 'percentage'; + } else { + $current_type = 'integer'; + } + + if (!array_key_exists($current_type, $allowed_types[$i])) { + return false; + } + + if (!$type) { + $type = $current_type; + } + + if ($allow_different_types === false && $type != $current_type) { + return false; + } + + $max_value = $allowed_types[$i][$current_type]; + + if ($current_type == 'integer') { + // Return value between range 0 -> $max_value + $new_parts[] = (int)max(min($part, $max_value), 0); + } elseif ($current_type == 'percentage') { + $new_parts[] = (float)max(min(rtrim($part, '%'), $max_value), 0) . '%'; + } + } + + $new_values = implode(',', $new_parts); + + $color = $function . '(' . $new_values . ')'; + } else { + // hexadecimal handling + if ($color[0] === '#') { + $hex = substr($color, 1); + } else { + $hex = $color; + $color = '#' . $color; + } + $length = strlen($hex); + if ($length !== 3 && $length !== 6) { + return false; + } + if (!ctype_xdigit($hex)) { + return false; + } + } + return $color; + } + +} + +// vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Composite.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Composite.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/DenyElementDecorator.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Filter.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Filter.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Font.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Font.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/FontFamily.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Ident.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ident.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Ident.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Ident.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ImportantDecorator.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Length.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Length.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/ListStyle.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/ListStyle.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php similarity index 96% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php index 9f266cd..e707f87 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Multiple.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Multiple.php @@ -44,7 +44,7 @@ class HTMLPurifier_AttrDef_CSS_Multiple extends HTMLPurifier_AttrDef */ public function validate($string, $config, $context) { - $string = $this->parseCDATA($string); + $string = $this->mungeRgb($this->parseCDATA($string)); if ($string === '') { return false; } diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php similarity index 90% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php index 8edc159..ef49d20 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Number.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Number.php @@ -69,7 +69,13 @@ class HTMLPurifier_AttrDef_CSS_Number extends HTMLPurifier_AttrDef return false; } - $left = ltrim($left, '0'); + // Remove leading zeros until positive number or a zero stays left + if (ltrim($left, '0') != '') { + $left = ltrim($left, '0'); + } else { + $left = '0'; + } + $right = rtrim($right, '0'); if ($right === '') { diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/Percentage.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/Percentage.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/TextDecoration.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/TextDecoration.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php similarity index 97% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php index f943423..6617aca 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/CSS/URI.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/URI.php @@ -33,6 +33,9 @@ class HTMLPurifier_AttrDef_CSS_URI extends HTMLPurifier_AttrDef_URI return false; } $uri_string = substr($uri_string, 4); + if (strlen($uri_string) == 0) { + return false; + } $new_length = strlen($uri_string) - 1; if ($uri_string[$new_length] != ')') { return false; diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/Clone.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Clone.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/Clone.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Clone.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/Enum.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/Enum.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Enum.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php similarity index 88% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php index 036a240..be3bbc8 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Bool.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Bool.php @@ -7,7 +7,7 @@ class HTMLPurifier_AttrDef_HTML_Bool extends HTMLPurifier_AttrDef { /** - * @type bool + * @type string */ protected $name; @@ -17,7 +17,7 @@ class HTMLPurifier_AttrDef_HTML_Bool extends HTMLPurifier_AttrDef public $minimized = true; /** - * @param bool $name + * @param bool|string $name */ public function __construct($name = false) { @@ -32,9 +32,6 @@ class HTMLPurifier_AttrDef_HTML_Bool extends HTMLPurifier_AttrDef */ public function validate($string, $config, $context) { - if (empty($string)) { - return false; - } return $this->name; } diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Class.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Class.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Color.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Color.php diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ContentEditable.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ContentEditable.php new file mode 100644 index 0000000..5b03d3e --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ContentEditable.php @@ -0,0 +1,16 @@ +get('HTML.Trusted')) { + $allowed = array('', 'true', 'false'); + } + + $enum = new HTMLPurifier_AttrDef_Enum($allowed); + + return $enum->validate($string, $config, $context); + } +} diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/FrameTarget.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/FrameTarget.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php similarity index 80% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php index 3d86efb..4ba4561 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/ID.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/ID.php @@ -72,18 +72,26 @@ class HTMLPurifier_AttrDef_HTML_ID extends HTMLPurifier_AttrDef // we purposely avoid using regex, hopefully this is faster - if (ctype_alpha($id)) { - $result = true; - } else { - if (!ctype_alpha(@$id[0])) { + if ($config->get('Attr.ID.HTML5') === true) { + if (preg_match('/[\t\n\x0b\x0c ]/', $id)) { return false; } - // primitive style of regexps, I suppose - $trim = trim( - $id, - 'A..Za..z0..9:-._' - ); - $result = ($trim === ''); + } else { + if (ctype_alpha($id)) { + // OK + } else { + if (!ctype_alpha(@$id[0])) { + return false; + } + // primitive style of regexps, I suppose + $trim = trim( + $id, + 'A..Za..z0..9:-._' + ); + if ($trim !== '') { + return false; + } + } } $regexp = $config->get('Attr.IDBlacklistRegexp'); @@ -91,14 +99,14 @@ class HTMLPurifier_AttrDef_HTML_ID extends HTMLPurifier_AttrDef return false; } - if (!$this->selector && $result) { + if (!$this->selector) { $id_accumulator->add($id); } // if no change was made to the ID, return the result // else, return the new id if stripping whitespace made it // valid, or return false. - return $result ? $id : false; + return $id; } } diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Length.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Length.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/LinkTypes.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/LinkTypes.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/MultiLength.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/MultiLength.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Nmtokens.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Nmtokens.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Pixels.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/HTML/Pixels.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/HTML/Pixels.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/Integer.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/Integer.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Integer.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/Lang.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/Lang.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Lang.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/Switch.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/Switch.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Switch.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/Text.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/Text.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/Text.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI/Email.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI/Email.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Email/SimpleCheck.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI/Host.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php similarity index 80% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI/Host.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php index e7df800..1beeaa5 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI/Host.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php @@ -76,24 +76,37 @@ class HTMLPurifier_AttrDef_URI_Host extends HTMLPurifier_AttrDef // fairly well supported. $underscore = $config->get('Core.AllowHostnameUnderscore') ? '_' : ''; + // Based off of RFC 1738, but amended so that + // as per RFC 3696, the top label need only not be all numeric. // The productions describing this are: $a = '[a-z]'; // alpha $an = '[a-z0-9]'; // alphanum $and = "[a-z0-9-$underscore]"; // alphanum | "-" // domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum - $domainlabel = "$an($and*$an)?"; - // toplabel = alpha | alpha *( alphanum | "-" ) alphanum - $toplabel = "$a($and*$an)?"; + $domainlabel = "$an(?:$and*$an)?"; + // AMENDED as per RFC 3696 + // toplabel = alphanum | alphanum *( alphanum | "-" ) alphanum + // side condition: not all numeric + $toplabel = "$an(?:$and*$an)?"; // hostname = *( domainlabel "." ) toplabel [ "." ] - if (preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string)) { - return $string; + if (preg_match("/^(?:$domainlabel\.)*($toplabel)\.?$/i", $string, $matches)) { + if (!ctype_digit($matches[1])) { + return $string; + } } + // PHP 5.3 and later support this functionality natively + if (function_exists('idn_to_ascii')) { + if (defined('IDNA_NONTRANSITIONAL_TO_ASCII') && defined('INTL_IDNA_VARIANT_UTS46')) { + $string = idn_to_ascii($string, IDNA_NONTRANSITIONAL_TO_ASCII, INTL_IDNA_VARIANT_UTS46); + } else { + $string = idn_to_ascii($string); + } + // If we have Net_IDNA2 support, we can support IRIs by // punycoding them. (This is the most portable thing to do, // since otherwise we have to assume browsers support - - if ($config->get('Core.EnableIDNA')) { + } elseif ($config->get('Core.EnableIDNA')) { $idna = new Net_IDNA2(array('encoding' => 'utf8', 'overlong' => false, 'strict' => true)); // we need to encode each period separately $parts = explode('.', $string); @@ -114,13 +127,14 @@ class HTMLPurifier_AttrDef_URI_Host extends HTMLPurifier_AttrDef } } $string = implode('.', $new_parts); - if (preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string)) { - return $string; - } } catch (Exception $e) { // XXX error reporting } } + // Try again + if (preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string)) { + return $string; + } return false; } } diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv4.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv4.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv4.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv6.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrDef/URI/IPv6.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/IPv6.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Background.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Background.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Background.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/BdoDir.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/BdoDir.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BdoDir.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/BgColor.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/BgColor.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BgColor.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/BoolToCSS.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/BoolToCSS.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/BoolToCSS.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Border.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Border.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Border.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/EnumToCSS.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/EnumToCSS.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/EnumToCSS.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/ImgRequired.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php similarity index 90% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/ImgRequired.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php index 7df6cb3..235ebb3 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/ImgRequired.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgRequired.php @@ -32,8 +32,7 @@ class HTMLPurifier_AttrTransform_ImgRequired extends HTMLPurifier_AttrTransform if ($src) { $alt = $config->get('Attr.DefaultImageAlt'); if ($alt === null) { - // truncate if the alt is too long - $attr['alt'] = substr(basename($attr['src']), 0, 40); + $attr['alt'] = basename($attr['src']); } else { $attr['alt'] = $alt; } diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/ImgSpace.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/ImgSpace.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ImgSpace.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Input.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Input.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Input.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Lang.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Lang.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Lang.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Length.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Length.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Length.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Name.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Name.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Name.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/NameSync.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php similarity index 93% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/NameSync.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php index 36079b7..5a1fdbb 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/NameSync.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/NameSync.php @@ -8,6 +8,11 @@ class HTMLPurifier_AttrTransform_NameSync extends HTMLPurifier_AttrTransform { + /** + * @type HTMLPurifier_AttrDef_HTML_ID + */ + public $idDef; + public function __construct() { $this->idDef = new HTMLPurifier_AttrDef_HTML_ID(); diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Nofollow.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/Nofollow.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/Nofollow.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/SafeEmbed.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/SafeEmbed.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeEmbed.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/SafeObject.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/SafeObject.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeObject.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/SafeParam.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php similarity index 97% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/SafeParam.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php index 1143b4b..1033106 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/SafeParam.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/SafeParam.php @@ -24,6 +24,11 @@ class HTMLPurifier_AttrTransform_SafeParam extends HTMLPurifier_AttrTransform */ private $uri; + /** + * @type HTMLPurifier_AttrDef_Enum + */ + public $wmode; + public function __construct() { $this->uri = new HTMLPurifier_AttrDef_URI(true); // embedded diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/ScriptRequired.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/ScriptRequired.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/ScriptRequired.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/TargetBlank.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrTransform/TargetBlank.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoopener.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoopener.php new file mode 100644 index 0000000..1db3c6c --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetNoopener.php @@ -0,0 +1,37 @@ +info['IAlign'] = self::makeEnum('top,middle,bottom,left,right'); $this->info['LAlign'] = self::makeEnum('top,bottom,left,right'); $this->info['FrameTarget'] = new HTMLPurifier_AttrDef_HTML_FrameTarget(); + $this->info['ContentEditable'] = new HTMLPurifier_AttrDef_HTML_ContentEditable(); // unimplemented aliases $this->info['ContentType'] = new HTMLPurifier_AttrDef_Text(); diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/AttrValidator.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrValidator.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/AttrValidator.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrValidator.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/Bootstrap.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Bootstrap.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/Bootstrap.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Bootstrap.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/CSSDefinition.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/CSSDefinition.php similarity index 83% rename from web/app/vendor/htmlpurifier/HTMLPurifier/CSSDefinition.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/CSSDefinition.php index 0acdee2..3f08b81 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/CSSDefinition.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/CSSDefinition.php @@ -109,6 +109,22 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition ); $this->info['background-position'] = new HTMLPurifier_AttrDef_CSS_BackgroundPosition(); + $this->info['background-size'] = new HTMLPurifier_AttrDef_CSS_Composite( + array( + new HTMLPurifier_AttrDef_Enum( + array( + 'auto', + 'cover', + 'contain', + 'initial', + 'inherit', + ) + ), + new HTMLPurifier_AttrDef_CSS_Percentage(), + new HTMLPurifier_AttrDef_CSS_Length() + ) + ); + $border_color = $this->info['border-top-color'] = $this->info['border-bottom-color'] = @@ -220,7 +236,21 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition array( new HTMLPurifier_AttrDef_CSS_Length('0'), new HTMLPurifier_AttrDef_CSS_Percentage(true), - new HTMLPurifier_AttrDef_Enum(array('auto')) + new HTMLPurifier_AttrDef_Enum(array('auto', 'initial', 'inherit')) + ) + ); + $trusted_min_wh = new HTMLPurifier_AttrDef_CSS_Composite( + array( + new HTMLPurifier_AttrDef_CSS_Length('0'), + new HTMLPurifier_AttrDef_CSS_Percentage(true), + new HTMLPurifier_AttrDef_Enum(array('initial', 'inherit')) + ) + ); + $trusted_max_wh = new HTMLPurifier_AttrDef_CSS_Composite( + array( + new HTMLPurifier_AttrDef_CSS_Length('0'), + new HTMLPurifier_AttrDef_CSS_Percentage(true), + new HTMLPurifier_AttrDef_Enum(array('none', 'initial', 'inherit')) ) ); $max = $config->get('CSS.MaxImgLength'); @@ -241,6 +271,38 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition // For everyone else: $trusted_wh ); + $this->info['min-width'] = + $this->info['min-height'] = + $max === null ? + $trusted_min_wh : + new HTMLPurifier_AttrDef_Switch( + 'img', + // For img tags: + new HTMLPurifier_AttrDef_CSS_Composite( + array( + new HTMLPurifier_AttrDef_CSS_Length('0', $max), + new HTMLPurifier_AttrDef_Enum(array('initial', 'inherit')) + ) + ), + // For everyone else: + $trusted_min_wh + ); + $this->info['max-width'] = + $this->info['max-height'] = + $max === null ? + $trusted_max_wh : + new HTMLPurifier_AttrDef_Switch( + 'img', + // For img tags: + new HTMLPurifier_AttrDef_CSS_Composite( + array( + new HTMLPurifier_AttrDef_CSS_Length('0', $max), + new HTMLPurifier_AttrDef_Enum(array('none', 'initial', 'inherit')) + ) + ), + // For everyone else: + $trusted_max_wh + ); $this->info['text-decoration'] = new HTMLPurifier_AttrDef_CSS_TextDecoration(); @@ -350,8 +412,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition $this->info['scrollbar-highlight-color'] = new HTMLPurifier_AttrDef_CSS_Color(); $this->info['scrollbar-shadow-color'] = new HTMLPurifier_AttrDef_CSS_Color(); - // technically not proprietary, but CSS3, and no one supports it - $this->info['opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue(); + // vendor specific prefixes of opacity $this->info['-moz-opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue(); $this->info['-khtml-opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue(); @@ -371,6 +432,19 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition ); $this->info['page-break-inside'] = new HTMLPurifier_AttrDef_Enum(array('auto', 'avoid')); + $border_radius = new HTMLPurifier_AttrDef_CSS_Composite( + array( + new HTMLPurifier_AttrDef_CSS_Percentage(true), // disallow negative + new HTMLPurifier_AttrDef_CSS_Length('0') // disallow negative + )); + + $this->info['border-top-left-radius'] = + $this->info['border-top-right-radius'] = + $this->info['border-bottom-right-radius'] = + $this->info['border-bottom-left-radius'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_radius, 2); + // TODO: support SLASH syntax + $this->info['border-radius'] = new HTMLPurifier_AttrDef_CSS_Multiple($border_radius, 4); + } /** @@ -404,6 +478,7 @@ class HTMLPurifier_CSSDefinition extends HTMLPurifier_Definition array('visible', 'hidden', 'collapse') ); $this->info['overflow'] = new HTMLPurifier_AttrDef_Enum(array('visible', 'hidden', 'auto', 'scroll')); + $this->info['opacity'] = new HTMLPurifier_AttrDef_CSS_AlphaValue(); } /** diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Chameleon.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Chameleon.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Chameleon.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Chameleon.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Custom.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Custom.php similarity index 98% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Custom.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Custom.php index 128132e..f515888 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Custom.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Custom.php @@ -45,7 +45,7 @@ class HTMLPurifier_ChildDef_Custom extends HTMLPurifier_ChildDef protected function _compileRegex() { $raw = str_replace(' ', '', $this->dtd_regex); - if ($raw{0} != '(') { + if ($raw[0] != '(') { $raw = "($raw)"; } $el = '[#a-zA-Z0-9_.-]+'; diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Empty.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Empty.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Empty.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Empty.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/List.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php similarity index 88% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/List.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php index 891b9f6..3d584e7 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/List.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/List.php @@ -22,6 +22,8 @@ class HTMLPurifier_ChildDef_List extends HTMLPurifier_ChildDef // XXX: This whole business with 'wrap' is all a bit unsatisfactory public $elements = array('li' => true, 'ul' => true, 'ol' => true); + public $whitespace; + /** * @param array $children * @param HTMLPurifier_Config $config @@ -38,13 +40,19 @@ class HTMLPurifier_ChildDef_List extends HTMLPurifier_ChildDef return false; } + // if li is not allowed, delete parent node + if (!isset($config->getHTMLDefinition()->info['li'])) { + trigger_error("Cannot allow ul/ol without allowing li", E_USER_WARNING); + return false; + } + // the new set of children $result = array(); // a little sanity check to make sure it's not ALL whitespace $all_whitespace = true; - $current_li = false; + $current_li = null; foreach ($children as $node) { if (!empty($node->is_whitespace)) { @@ -65,7 +73,7 @@ class HTMLPurifier_ChildDef_List extends HTMLPurifier_ChildDef // to handle non-list elements; non-list elements should // not be appended to an existing li; only li created // for non-list. This distinction is not currently made. - if ($current_li === false) { + if ($current_li === null) { $current_li = new HTMLPurifier_Node_Element('li'); $result[] = $current_li; } diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Optional.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Optional.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Optional.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Optional.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Required.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Required.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Required.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Required.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/StrictBlockquote.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/StrictBlockquote.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/StrictBlockquote.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Table.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php similarity index 98% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Table.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php index 3e4a0f2..67c7e95 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/ChildDef/Table.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ChildDef/Table.php @@ -164,7 +164,7 @@ class HTMLPurifier_ChildDef_Table extends HTMLPurifier_ChildDef } } - if (empty($content)) { + if (empty($content) && $thead === false && $tfoot === false) { return false; } @@ -203,7 +203,7 @@ class HTMLPurifier_ChildDef_Table extends HTMLPurifier_ChildDef $current_tr_tbody->children[] = $node; break; case '#PCDATA': - assert($node->is_whitespace); + //assert($node->is_whitespace); if ($current_tr_tbody === null) { $ret[] = $node; } else { diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/Config.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php similarity index 97% rename from web/app/vendor/htmlpurifier/HTMLPurifier/Config.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php index 7ada59b..797d268 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/Config.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php @@ -21,7 +21,7 @@ class HTMLPurifier_Config * HTML Purifier's version * @type string */ - public $version = '4.6.0'; + public $version = '4.15.0'; /** * Whether or not to automatically finalize @@ -333,7 +333,7 @@ class HTMLPurifier_Config } // Raw type might be negative when using the fully optimized form - // of stdclass, which indicates allow_null == true + // of stdClass, which indicates allow_null == true $rtype = is_int($def) ? $def : $def->type; if ($rtype < 0) { $type = -$rtype; @@ -408,7 +408,7 @@ class HTMLPurifier_Config * maybeGetRawHTMLDefinition, which is more explicitly * named, instead. * - * @return HTMLPurifier_HTMLDefinition + * @return HTMLPurifier_HTMLDefinition|null */ public function getHTMLDefinition($raw = false, $optimized = false) { @@ -427,7 +427,7 @@ class HTMLPurifier_Config * maybeGetRawCSSDefinition, which is more explicitly * named, instead. * - * @return HTMLPurifier_CSSDefinition + * @return HTMLPurifier_CSSDefinition|null */ public function getCSSDefinition($raw = false, $optimized = false) { @@ -446,7 +446,7 @@ class HTMLPurifier_Config * maybeGetRawURIDefinition, which is more explicitly * named, instead. * - * @return HTMLPurifier_URIDefinition + * @return HTMLPurifier_URIDefinition|null */ public function getURIDefinition($raw = false, $optimized = false) { @@ -468,7 +468,7 @@ class HTMLPurifier_Config * maybe semantics is the "right thing to do." * * @throws HTMLPurifier_Exception - * @return HTMLPurifier_Definition + * @return HTMLPurifier_Definition|null */ public function getDefinition($type, $raw = false, $optimized = false) { @@ -646,16 +646,25 @@ class HTMLPurifier_Config return $this->getDefinition($name, true, true); } + /** + * @return HTMLPurifier_HTMLDefinition|null + */ public function maybeGetRawHTMLDefinition() { return $this->getDefinition('HTML', true, true); } - + + /** + * @return HTMLPurifier_CSSDefinition|null + */ public function maybeGetRawCSSDefinition() { return $this->getDefinition('CSS', true, true); } - + + /** + * @return HTMLPurifier_URIDefinition|null + */ public function maybeGetRawURIDefinition() { return $this->getDefinition('URI', true, true); @@ -794,7 +803,7 @@ class HTMLPurifier_Config if ($index !== false) { $array = (isset($array[$index]) && is_array($array[$index])) ? $array[$index] : array(); } - $mq = $mq_fix && function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc(); + $mq = $mq_fix && version_compare(PHP_VERSION, '7.4.0', '<') && function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc(); $allowed = HTMLPurifier_Config::getAllowedDirectivesForForm($allowed, $schema); $ret = array(); @@ -881,7 +890,7 @@ class HTMLPurifier_Config // zip(tail(trace), trace) -- but PHP is not Haskell har har for ($i = 0, $c = count($trace); $i < $c - 1; $i++) { // XXX this is not correct on some versions of HTML Purifier - if ($trace[$i + 1]['class'] === 'HTMLPurifier_Config') { + if (isset($trace[$i + 1]['class']) && $trace[$i + 1]['class'] === 'HTMLPurifier_Config') { continue; } $frame = $trace[$i]; diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema.php similarity index 92% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema.php index bfbb0f9..c3fe8cd 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema.php @@ -24,11 +24,11 @@ class HTMLPurifier_ConfigSchema * * array( * 'Namespace' => array( - * 'Directive' => new stdclass(), + * 'Directive' => new stdClass(), * ) * ) * - * The stdclass may have the following properties: + * The stdClass may have the following properties: * * - If isAlias isn't set: * - type: Integer type of directive, see HTMLPurifier_VarParser for definitions @@ -39,8 +39,8 @@ class HTMLPurifier_ConfigSchema * - namespace: Namespace this directive aliases to * - name: Directive name this directive aliases to * - * In certain degenerate cases, stdclass will actually be an integer. In - * that case, the value is equivalent to an stdclass with the type + * In certain degenerate cases, stdClass will actually be an integer. In + * that case, the value is equivalent to an stdClass with the type * property set to the integer. If the integer is negative, type is * equal to the absolute value of integer, and allow_null is true. * @@ -100,12 +100,12 @@ class HTMLPurifier_ConfigSchema * @param string $key Name of directive * @param mixed $default Default value of directive * @param string $type Allowed type of the directive. See - * HTMLPurifier_DirectiveDef::$type for allowed values + * HTMLPurifier_VarParser::$types for allowed values * @param bool $allow_null Whether or not to allow null values */ public function add($key, $default, $type, $allow_null) { - $obj = new stdclass(); + $obj = new stdClass(); $obj->type = is_int($type) ? $type : HTMLPurifier_VarParser::$types[$type]; if ($allow_null) { $obj->allow_null = true; @@ -152,14 +152,14 @@ class HTMLPurifier_ConfigSchema */ public function addAlias($key, $new_key) { - $obj = new stdclass; + $obj = new stdClass; $obj->key = $new_key; $obj->isAlias = true; $this->info[$key] = $obj; } /** - * Replaces any stdclass that only has the type property with type integer. + * Replaces any stdClass that only has the type property with type integer. */ public function postProcess() { diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/ConfigSchema.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/Xml.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Builder/Xml.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Builder/Xml.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Exception.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Exception.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Exception.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Exception.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Directive.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Directive.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Directive.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Id.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Interchange/Id.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Interchange/Id.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/InterchangeBuilder.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/InterchangeBuilder.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Validator.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Validator.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/Validator.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/Validator.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/ValidatorAtom.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/ValidatorAtom.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/ValidatorAtom.php diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema.ser b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema.ser new file mode 100644 index 0000000..a5426c7 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema.ser @@ -0,0 +1 @@ +O:25:"HTMLPurifier_ConfigSchema":3:{s:8:"defaults";a:127:{s:19:"Attr.AllowedClasses";N;s:24:"Attr.AllowedFrameTargets";a:0:{}s:15:"Attr.AllowedRel";a:0:{}s:15:"Attr.AllowedRev";a:0:{}s:18:"Attr.ClassUseCDATA";N;s:20:"Attr.DefaultImageAlt";N;s:24:"Attr.DefaultInvalidImage";s:0:"";s:27:"Attr.DefaultInvalidImageAlt";s:13:"Invalid image";s:19:"Attr.DefaultTextDir";s:3:"ltr";s:13:"Attr.EnableID";b:0;s:21:"Attr.ForbiddenClasses";a:0:{}s:13:"Attr.ID.HTML5";N;s:16:"Attr.IDBlacklist";a:0:{}s:22:"Attr.IDBlacklistRegexp";N;s:13:"Attr.IDPrefix";s:0:"";s:18:"Attr.IDPrefixLocal";s:0:"";s:24:"AutoFormat.AutoParagraph";b:0;s:17:"AutoFormat.Custom";a:0:{}s:25:"AutoFormat.DisplayLinkURI";b:0;s:18:"AutoFormat.Linkify";b:0;s:33:"AutoFormat.PurifierLinkify.DocURL";s:3:"#%s";s:26:"AutoFormat.PurifierLinkify";b:0;s:32:"AutoFormat.RemoveEmpty.Predicate";a:4:{s:8:"colgroup";a:0:{}s:2:"th";a:0:{}s:2:"td";a:0:{}s:6:"iframe";a:1:{i:0;s:3:"src";}}s:44:"AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions";a:2:{s:2:"td";b:1;s:2:"th";b:1;}s:33:"AutoFormat.RemoveEmpty.RemoveNbsp";b:0;s:22:"AutoFormat.RemoveEmpty";b:0;s:39:"AutoFormat.RemoveSpansWithoutAttributes";b:0;s:19:"CSS.AllowDuplicates";b:0;s:18:"CSS.AllowImportant";b:0;s:15:"CSS.AllowTricky";b:0;s:16:"CSS.AllowedFonts";N;s:21:"CSS.AllowedProperties";N;s:17:"CSS.DefinitionRev";i:1;s:23:"CSS.ForbiddenProperties";a:0:{}s:16:"CSS.MaxImgLength";s:6:"1200px";s:15:"CSS.Proprietary";b:0;s:11:"CSS.Trusted";b:0;s:20:"Cache.DefinitionImpl";s:10:"Serializer";s:20:"Cache.SerializerPath";N;s:27:"Cache.SerializerPermissions";i:493;s:22:"Core.AggressivelyFixLt";b:1;s:29:"Core.AggressivelyRemoveScript";b:1;s:28:"Core.AllowHostnameUnderscore";b:0;s:23:"Core.AllowParseManyTags";b:0;s:18:"Core.CollectErrors";b:0;s:18:"Core.ColorKeywords";a:148:{s:9:"aliceblue";s:7:"#F0F8FF";s:12:"antiquewhite";s:7:"#FAEBD7";s:4:"aqua";s:7:"#00FFFF";s:10:"aquamarine";s:7:"#7FFFD4";s:5:"azure";s:7:"#F0FFFF";s:5:"beige";s:7:"#F5F5DC";s:6:"bisque";s:7:"#FFE4C4";s:5:"black";s:7:"#000000";s:14:"blanchedalmond";s:7:"#FFEBCD";s:4:"blue";s:7:"#0000FF";s:10:"blueviolet";s:7:"#8A2BE2";s:5:"brown";s:7:"#A52A2A";s:9:"burlywood";s:7:"#DEB887";s:9:"cadetblue";s:7:"#5F9EA0";s:10:"chartreuse";s:7:"#7FFF00";s:9:"chocolate";s:7:"#D2691E";s:5:"coral";s:7:"#FF7F50";s:14:"cornflowerblue";s:7:"#6495ED";s:8:"cornsilk";s:7:"#FFF8DC";s:7:"crimson";s:7:"#DC143C";s:4:"cyan";s:7:"#00FFFF";s:8:"darkblue";s:7:"#00008B";s:8:"darkcyan";s:7:"#008B8B";s:13:"darkgoldenrod";s:7:"#B8860B";s:8:"darkgray";s:7:"#A9A9A9";s:8:"darkgrey";s:7:"#A9A9A9";s:9:"darkgreen";s:7:"#006400";s:9:"darkkhaki";s:7:"#BDB76B";s:11:"darkmagenta";s:7:"#8B008B";s:14:"darkolivegreen";s:7:"#556B2F";s:10:"darkorange";s:7:"#FF8C00";s:10:"darkorchid";s:7:"#9932CC";s:7:"darkred";s:7:"#8B0000";s:10:"darksalmon";s:7:"#E9967A";s:12:"darkseagreen";s:7:"#8FBC8F";s:13:"darkslateblue";s:7:"#483D8B";s:13:"darkslategray";s:7:"#2F4F4F";s:13:"darkslategrey";s:7:"#2F4F4F";s:13:"darkturquoise";s:7:"#00CED1";s:10:"darkviolet";s:7:"#9400D3";s:8:"deeppink";s:7:"#FF1493";s:11:"deepskyblue";s:7:"#00BFFF";s:7:"dimgray";s:7:"#696969";s:7:"dimgrey";s:7:"#696969";s:10:"dodgerblue";s:7:"#1E90FF";s:9:"firebrick";s:7:"#B22222";s:11:"floralwhite";s:7:"#FFFAF0";s:11:"forestgreen";s:7:"#228B22";s:7:"fuchsia";s:7:"#FF00FF";s:9:"gainsboro";s:7:"#DCDCDC";s:10:"ghostwhite";s:7:"#F8F8FF";s:4:"gold";s:7:"#FFD700";s:9:"goldenrod";s:7:"#DAA520";s:4:"gray";s:7:"#808080";s:4:"grey";s:7:"#808080";s:5:"green";s:7:"#008000";s:11:"greenyellow";s:7:"#ADFF2F";s:8:"honeydew";s:7:"#F0FFF0";s:7:"hotpink";s:7:"#FF69B4";s:9:"indianred";s:7:"#CD5C5C";s:6:"indigo";s:7:"#4B0082";s:5:"ivory";s:7:"#FFFFF0";s:5:"khaki";s:7:"#F0E68C";s:8:"lavender";s:7:"#E6E6FA";s:13:"lavenderblush";s:7:"#FFF0F5";s:9:"lawngreen";s:7:"#7CFC00";s:12:"lemonchiffon";s:7:"#FFFACD";s:9:"lightblue";s:7:"#ADD8E6";s:10:"lightcoral";s:7:"#F08080";s:9:"lightcyan";s:7:"#E0FFFF";s:20:"lightgoldenrodyellow";s:7:"#FAFAD2";s:9:"lightgray";s:7:"#D3D3D3";s:9:"lightgrey";s:7:"#D3D3D3";s:10:"lightgreen";s:7:"#90EE90";s:9:"lightpink";s:7:"#FFB6C1";s:11:"lightsalmon";s:7:"#FFA07A";s:13:"lightseagreen";s:7:"#20B2AA";s:12:"lightskyblue";s:7:"#87CEFA";s:14:"lightslategray";s:7:"#778899";s:14:"lightslategrey";s:7:"#778899";s:14:"lightsteelblue";s:7:"#B0C4DE";s:11:"lightyellow";s:7:"#FFFFE0";s:4:"lime";s:7:"#00FF00";s:9:"limegreen";s:7:"#32CD32";s:5:"linen";s:7:"#FAF0E6";s:7:"magenta";s:7:"#FF00FF";s:6:"maroon";s:7:"#800000";s:16:"mediumaquamarine";s:7:"#66CDAA";s:10:"mediumblue";s:7:"#0000CD";s:12:"mediumorchid";s:7:"#BA55D3";s:12:"mediumpurple";s:7:"#9370DB";s:14:"mediumseagreen";s:7:"#3CB371";s:15:"mediumslateblue";s:7:"#7B68EE";s:17:"mediumspringgreen";s:7:"#00FA9A";s:15:"mediumturquoise";s:7:"#48D1CC";s:15:"mediumvioletred";s:7:"#C71585";s:12:"midnightblue";s:7:"#191970";s:9:"mintcream";s:7:"#F5FFFA";s:9:"mistyrose";s:7:"#FFE4E1";s:8:"moccasin";s:7:"#FFE4B5";s:11:"navajowhite";s:7:"#FFDEAD";s:4:"navy";s:7:"#000080";s:7:"oldlace";s:7:"#FDF5E6";s:5:"olive";s:7:"#808000";s:9:"olivedrab";s:7:"#6B8E23";s:6:"orange";s:7:"#FFA500";s:9:"orangered";s:7:"#FF4500";s:6:"orchid";s:7:"#DA70D6";s:13:"palegoldenrod";s:7:"#EEE8AA";s:9:"palegreen";s:7:"#98FB98";s:13:"paleturquoise";s:7:"#AFEEEE";s:13:"palevioletred";s:7:"#DB7093";s:10:"papayawhip";s:7:"#FFEFD5";s:9:"peachpuff";s:7:"#FFDAB9";s:4:"peru";s:7:"#CD853F";s:4:"pink";s:7:"#FFC0CB";s:4:"plum";s:7:"#DDA0DD";s:10:"powderblue";s:7:"#B0E0E6";s:6:"purple";s:7:"#800080";s:13:"rebeccapurple";s:7:"#663399";s:3:"red";s:7:"#FF0000";s:9:"rosybrown";s:7:"#BC8F8F";s:9:"royalblue";s:7:"#4169E1";s:11:"saddlebrown";s:7:"#8B4513";s:6:"salmon";s:7:"#FA8072";s:10:"sandybrown";s:7:"#F4A460";s:8:"seagreen";s:7:"#2E8B57";s:8:"seashell";s:7:"#FFF5EE";s:6:"sienna";s:7:"#A0522D";s:6:"silver";s:7:"#C0C0C0";s:7:"skyblue";s:7:"#87CEEB";s:9:"slateblue";s:7:"#6A5ACD";s:9:"slategray";s:7:"#708090";s:9:"slategrey";s:7:"#708090";s:4:"snow";s:7:"#FFFAFA";s:11:"springgreen";s:7:"#00FF7F";s:9:"steelblue";s:7:"#4682B4";s:3:"tan";s:7:"#D2B48C";s:4:"teal";s:7:"#008080";s:7:"thistle";s:7:"#D8BFD8";s:6:"tomato";s:7:"#FF6347";s:9:"turquoise";s:7:"#40E0D0";s:6:"violet";s:7:"#EE82EE";s:5:"wheat";s:7:"#F5DEB3";s:5:"white";s:7:"#FFFFFF";s:10:"whitesmoke";s:7:"#F5F5F5";s:6:"yellow";s:7:"#FFFF00";s:11:"yellowgreen";s:7:"#9ACD32";}s:30:"Core.ConvertDocumentToFragment";b:1;s:36:"Core.DirectLexLineNumberSyncInterval";i:0;s:20:"Core.DisableExcludes";b:0;s:15:"Core.EnableIDNA";b:0;s:13:"Core.Encoding";s:5:"utf-8";s:26:"Core.EscapeInvalidChildren";b:0;s:22:"Core.EscapeInvalidTags";b:0;s:29:"Core.EscapeNonASCIICharacters";b:0;s:19:"Core.HiddenElements";a:2:{s:6:"script";b:1;s:5:"style";b:1;}s:13:"Core.Language";s:2:"en";s:24:"Core.LegacyEntityDecoder";b:0;s:14:"Core.LexerImpl";N;s:24:"Core.MaintainLineNumbers";N;s:22:"Core.NormalizeNewlines";b:1;s:21:"Core.RemoveInvalidImg";b:1;s:33:"Core.RemoveProcessingInstructions";b:0;s:25:"Core.RemoveScriptContents";N;s:13:"Filter.Custom";a:0:{}s:34:"Filter.ExtractStyleBlocks.Escaping";b:1;s:31:"Filter.ExtractStyleBlocks.Scope";N;s:34:"Filter.ExtractStyleBlocks.TidyImpl";N;s:25:"Filter.ExtractStyleBlocks";b:0;s:14:"Filter.YouTube";b:0;s:12:"HTML.Allowed";N;s:22:"HTML.AllowedAttributes";N;s:20:"HTML.AllowedComments";a:0:{}s:26:"HTML.AllowedCommentsRegexp";N;s:20:"HTML.AllowedElements";N;s:19:"HTML.AllowedModules";N;s:23:"HTML.Attr.Name.UseCDATA";b:0;s:17:"HTML.BlockWrapper";s:1:"p";s:16:"HTML.CoreModules";a:7:{s:9:"Structure";b:1;s:4:"Text";b:1;s:9:"Hypertext";b:1;s:4:"List";b:1;s:22:"NonXMLCommonAttributes";b:1;s:19:"XMLCommonAttributes";b:1;s:16:"CommonAttributes";b:1;}s:18:"HTML.CustomDoctype";N;s:17:"HTML.DefinitionID";N;s:18:"HTML.DefinitionRev";i:1;s:12:"HTML.Doctype";N;s:25:"HTML.FlashAllowFullScreen";b:0;s:24:"HTML.ForbiddenAttributes";a:0:{}s:22:"HTML.ForbiddenElements";a:0:{}s:10:"HTML.Forms";b:0;s:17:"HTML.MaxImgLength";i:1200;s:13:"HTML.Nofollow";b:0;s:11:"HTML.Parent";s:3:"div";s:16:"HTML.Proprietary";b:0;s:14:"HTML.SafeEmbed";b:0;s:15:"HTML.SafeIframe";b:0;s:15:"HTML.SafeObject";b:0;s:18:"HTML.SafeScripting";a:0:{}s:11:"HTML.Strict";b:0;s:16:"HTML.TargetBlank";b:0;s:19:"HTML.TargetNoopener";b:1;s:21:"HTML.TargetNoreferrer";b:1;s:12:"HTML.TidyAdd";a:0:{}s:14:"HTML.TidyLevel";s:6:"medium";s:15:"HTML.TidyRemove";a:0:{}s:12:"HTML.Trusted";b:0;s:10:"HTML.XHTML";b:1;s:28:"Output.CommentScriptContents";b:1;s:19:"Output.FixInnerHTML";b:1;s:18:"Output.FlashCompat";b:0;s:14:"Output.Newline";N;s:15:"Output.SortAttr";b:0;s:17:"Output.TidyFormat";b:0;s:17:"Test.ForceNoIconv";b:0;s:18:"URI.AllowedSchemes";a:7:{s:4:"http";b:1;s:5:"https";b:1;s:6:"mailto";b:1;s:3:"ftp";b:1;s:4:"nntp";b:1;s:4:"news";b:1;s:3:"tel";b:1;}s:8:"URI.Base";N;s:17:"URI.DefaultScheme";s:4:"http";s:16:"URI.DefinitionID";N;s:17:"URI.DefinitionRev";i:1;s:11:"URI.Disable";b:0;s:19:"URI.DisableExternal";b:0;s:28:"URI.DisableExternalResources";b:0;s:20:"URI.DisableResources";b:0;s:8:"URI.Host";N;s:17:"URI.HostBlacklist";a:0:{}s:16:"URI.MakeAbsolute";b:0;s:9:"URI.Munge";N;s:18:"URI.MungeResources";b:0;s:18:"URI.MungeSecretKey";N;s:26:"URI.OverrideAllowedSchemes";b:1;s:20:"URI.SafeIframeRegexp";N;}s:12:"defaultPlist";O:25:"HTMLPurifier_PropertyList":3:{s:7:"*data";a:127:{s:19:"Attr.AllowedClasses";N;s:24:"Attr.AllowedFrameTargets";a:0:{}s:15:"Attr.AllowedRel";a:0:{}s:15:"Attr.AllowedRev";a:0:{}s:18:"Attr.ClassUseCDATA";N;s:20:"Attr.DefaultImageAlt";N;s:24:"Attr.DefaultInvalidImage";s:0:"";s:27:"Attr.DefaultInvalidImageAlt";s:13:"Invalid image";s:19:"Attr.DefaultTextDir";s:3:"ltr";s:13:"Attr.EnableID";b:0;s:21:"Attr.ForbiddenClasses";a:0:{}s:13:"Attr.ID.HTML5";N;s:16:"Attr.IDBlacklist";a:0:{}s:22:"Attr.IDBlacklistRegexp";N;s:13:"Attr.IDPrefix";s:0:"";s:18:"Attr.IDPrefixLocal";s:0:"";s:24:"AutoFormat.AutoParagraph";b:0;s:17:"AutoFormat.Custom";a:0:{}s:25:"AutoFormat.DisplayLinkURI";b:0;s:18:"AutoFormat.Linkify";b:0;s:33:"AutoFormat.PurifierLinkify.DocURL";s:3:"#%s";s:26:"AutoFormat.PurifierLinkify";b:0;s:32:"AutoFormat.RemoveEmpty.Predicate";a:4:{s:8:"colgroup";a:0:{}s:2:"th";a:0:{}s:2:"td";a:0:{}s:6:"iframe";a:1:{i:0;s:3:"src";}}s:44:"AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions";a:2:{s:2:"td";b:1;s:2:"th";b:1;}s:33:"AutoFormat.RemoveEmpty.RemoveNbsp";b:0;s:22:"AutoFormat.RemoveEmpty";b:0;s:39:"AutoFormat.RemoveSpansWithoutAttributes";b:0;s:19:"CSS.AllowDuplicates";b:0;s:18:"CSS.AllowImportant";b:0;s:15:"CSS.AllowTricky";b:0;s:16:"CSS.AllowedFonts";N;s:21:"CSS.AllowedProperties";N;s:17:"CSS.DefinitionRev";i:1;s:23:"CSS.ForbiddenProperties";a:0:{}s:16:"CSS.MaxImgLength";s:6:"1200px";s:15:"CSS.Proprietary";b:0;s:11:"CSS.Trusted";b:0;s:20:"Cache.DefinitionImpl";s:10:"Serializer";s:20:"Cache.SerializerPath";N;s:27:"Cache.SerializerPermissions";i:493;s:22:"Core.AggressivelyFixLt";b:1;s:29:"Core.AggressivelyRemoveScript";b:1;s:28:"Core.AllowHostnameUnderscore";b:0;s:23:"Core.AllowParseManyTags";b:0;s:18:"Core.CollectErrors";b:0;s:18:"Core.ColorKeywords";a:148:{s:9:"aliceblue";s:7:"#F0F8FF";s:12:"antiquewhite";s:7:"#FAEBD7";s:4:"aqua";s:7:"#00FFFF";s:10:"aquamarine";s:7:"#7FFFD4";s:5:"azure";s:7:"#F0FFFF";s:5:"beige";s:7:"#F5F5DC";s:6:"bisque";s:7:"#FFE4C4";s:5:"black";s:7:"#000000";s:14:"blanchedalmond";s:7:"#FFEBCD";s:4:"blue";s:7:"#0000FF";s:10:"blueviolet";s:7:"#8A2BE2";s:5:"brown";s:7:"#A52A2A";s:9:"burlywood";s:7:"#DEB887";s:9:"cadetblue";s:7:"#5F9EA0";s:10:"chartreuse";s:7:"#7FFF00";s:9:"chocolate";s:7:"#D2691E";s:5:"coral";s:7:"#FF7F50";s:14:"cornflowerblue";s:7:"#6495ED";s:8:"cornsilk";s:7:"#FFF8DC";s:7:"crimson";s:7:"#DC143C";s:4:"cyan";s:7:"#00FFFF";s:8:"darkblue";s:7:"#00008B";s:8:"darkcyan";s:7:"#008B8B";s:13:"darkgoldenrod";s:7:"#B8860B";s:8:"darkgray";s:7:"#A9A9A9";s:8:"darkgrey";s:7:"#A9A9A9";s:9:"darkgreen";s:7:"#006400";s:9:"darkkhaki";s:7:"#BDB76B";s:11:"darkmagenta";s:7:"#8B008B";s:14:"darkolivegreen";s:7:"#556B2F";s:10:"darkorange";s:7:"#FF8C00";s:10:"darkorchid";s:7:"#9932CC";s:7:"darkred";s:7:"#8B0000";s:10:"darksalmon";s:7:"#E9967A";s:12:"darkseagreen";s:7:"#8FBC8F";s:13:"darkslateblue";s:7:"#483D8B";s:13:"darkslategray";s:7:"#2F4F4F";s:13:"darkslategrey";s:7:"#2F4F4F";s:13:"darkturquoise";s:7:"#00CED1";s:10:"darkviolet";s:7:"#9400D3";s:8:"deeppink";s:7:"#FF1493";s:11:"deepskyblue";s:7:"#00BFFF";s:7:"dimgray";s:7:"#696969";s:7:"dimgrey";s:7:"#696969";s:10:"dodgerblue";s:7:"#1E90FF";s:9:"firebrick";s:7:"#B22222";s:11:"floralwhite";s:7:"#FFFAF0";s:11:"forestgreen";s:7:"#228B22";s:7:"fuchsia";s:7:"#FF00FF";s:9:"gainsboro";s:7:"#DCDCDC";s:10:"ghostwhite";s:7:"#F8F8FF";s:4:"gold";s:7:"#FFD700";s:9:"goldenrod";s:7:"#DAA520";s:4:"gray";s:7:"#808080";s:4:"grey";s:7:"#808080";s:5:"green";s:7:"#008000";s:11:"greenyellow";s:7:"#ADFF2F";s:8:"honeydew";s:7:"#F0FFF0";s:7:"hotpink";s:7:"#FF69B4";s:9:"indianred";s:7:"#CD5C5C";s:6:"indigo";s:7:"#4B0082";s:5:"ivory";s:7:"#FFFFF0";s:5:"khaki";s:7:"#F0E68C";s:8:"lavender";s:7:"#E6E6FA";s:13:"lavenderblush";s:7:"#FFF0F5";s:9:"lawngreen";s:7:"#7CFC00";s:12:"lemonchiffon";s:7:"#FFFACD";s:9:"lightblue";s:7:"#ADD8E6";s:10:"lightcoral";s:7:"#F08080";s:9:"lightcyan";s:7:"#E0FFFF";s:20:"lightgoldenrodyellow";s:7:"#FAFAD2";s:9:"lightgray";s:7:"#D3D3D3";s:9:"lightgrey";s:7:"#D3D3D3";s:10:"lightgreen";s:7:"#90EE90";s:9:"lightpink";s:7:"#FFB6C1";s:11:"lightsalmon";s:7:"#FFA07A";s:13:"lightseagreen";s:7:"#20B2AA";s:12:"lightskyblue";s:7:"#87CEFA";s:14:"lightslategray";s:7:"#778899";s:14:"lightslategrey";s:7:"#778899";s:14:"lightsteelblue";s:7:"#B0C4DE";s:11:"lightyellow";s:7:"#FFFFE0";s:4:"lime";s:7:"#00FF00";s:9:"limegreen";s:7:"#32CD32";s:5:"linen";s:7:"#FAF0E6";s:7:"magenta";s:7:"#FF00FF";s:6:"maroon";s:7:"#800000";s:16:"mediumaquamarine";s:7:"#66CDAA";s:10:"mediumblue";s:7:"#0000CD";s:12:"mediumorchid";s:7:"#BA55D3";s:12:"mediumpurple";s:7:"#9370DB";s:14:"mediumseagreen";s:7:"#3CB371";s:15:"mediumslateblue";s:7:"#7B68EE";s:17:"mediumspringgreen";s:7:"#00FA9A";s:15:"mediumturquoise";s:7:"#48D1CC";s:15:"mediumvioletred";s:7:"#C71585";s:12:"midnightblue";s:7:"#191970";s:9:"mintcream";s:7:"#F5FFFA";s:9:"mistyrose";s:7:"#FFE4E1";s:8:"moccasin";s:7:"#FFE4B5";s:11:"navajowhite";s:7:"#FFDEAD";s:4:"navy";s:7:"#000080";s:7:"oldlace";s:7:"#FDF5E6";s:5:"olive";s:7:"#808000";s:9:"olivedrab";s:7:"#6B8E23";s:6:"orange";s:7:"#FFA500";s:9:"orangered";s:7:"#FF4500";s:6:"orchid";s:7:"#DA70D6";s:13:"palegoldenrod";s:7:"#EEE8AA";s:9:"palegreen";s:7:"#98FB98";s:13:"paleturquoise";s:7:"#AFEEEE";s:13:"palevioletred";s:7:"#DB7093";s:10:"papayawhip";s:7:"#FFEFD5";s:9:"peachpuff";s:7:"#FFDAB9";s:4:"peru";s:7:"#CD853F";s:4:"pink";s:7:"#FFC0CB";s:4:"plum";s:7:"#DDA0DD";s:10:"powderblue";s:7:"#B0E0E6";s:6:"purple";s:7:"#800080";s:13:"rebeccapurple";s:7:"#663399";s:3:"red";s:7:"#FF0000";s:9:"rosybrown";s:7:"#BC8F8F";s:9:"royalblue";s:7:"#4169E1";s:11:"saddlebrown";s:7:"#8B4513";s:6:"salmon";s:7:"#FA8072";s:10:"sandybrown";s:7:"#F4A460";s:8:"seagreen";s:7:"#2E8B57";s:8:"seashell";s:7:"#FFF5EE";s:6:"sienna";s:7:"#A0522D";s:6:"silver";s:7:"#C0C0C0";s:7:"skyblue";s:7:"#87CEEB";s:9:"slateblue";s:7:"#6A5ACD";s:9:"slategray";s:7:"#708090";s:9:"slategrey";s:7:"#708090";s:4:"snow";s:7:"#FFFAFA";s:11:"springgreen";s:7:"#00FF7F";s:9:"steelblue";s:7:"#4682B4";s:3:"tan";s:7:"#D2B48C";s:4:"teal";s:7:"#008080";s:7:"thistle";s:7:"#D8BFD8";s:6:"tomato";s:7:"#FF6347";s:9:"turquoise";s:7:"#40E0D0";s:6:"violet";s:7:"#EE82EE";s:5:"wheat";s:7:"#F5DEB3";s:5:"white";s:7:"#FFFFFF";s:10:"whitesmoke";s:7:"#F5F5F5";s:6:"yellow";s:7:"#FFFF00";s:11:"yellowgreen";s:7:"#9ACD32";}s:30:"Core.ConvertDocumentToFragment";b:1;s:36:"Core.DirectLexLineNumberSyncInterval";i:0;s:20:"Core.DisableExcludes";b:0;s:15:"Core.EnableIDNA";b:0;s:13:"Core.Encoding";s:5:"utf-8";s:26:"Core.EscapeInvalidChildren";b:0;s:22:"Core.EscapeInvalidTags";b:0;s:29:"Core.EscapeNonASCIICharacters";b:0;s:19:"Core.HiddenElements";a:2:{s:6:"script";b:1;s:5:"style";b:1;}s:13:"Core.Language";s:2:"en";s:24:"Core.LegacyEntityDecoder";b:0;s:14:"Core.LexerImpl";N;s:24:"Core.MaintainLineNumbers";N;s:22:"Core.NormalizeNewlines";b:1;s:21:"Core.RemoveInvalidImg";b:1;s:33:"Core.RemoveProcessingInstructions";b:0;s:25:"Core.RemoveScriptContents";N;s:13:"Filter.Custom";a:0:{}s:34:"Filter.ExtractStyleBlocks.Escaping";b:1;s:31:"Filter.ExtractStyleBlocks.Scope";N;s:34:"Filter.ExtractStyleBlocks.TidyImpl";N;s:25:"Filter.ExtractStyleBlocks";b:0;s:14:"Filter.YouTube";b:0;s:12:"HTML.Allowed";N;s:22:"HTML.AllowedAttributes";N;s:20:"HTML.AllowedComments";a:0:{}s:26:"HTML.AllowedCommentsRegexp";N;s:20:"HTML.AllowedElements";N;s:19:"HTML.AllowedModules";N;s:23:"HTML.Attr.Name.UseCDATA";b:0;s:17:"HTML.BlockWrapper";s:1:"p";s:16:"HTML.CoreModules";a:7:{s:9:"Structure";b:1;s:4:"Text";b:1;s:9:"Hypertext";b:1;s:4:"List";b:1;s:22:"NonXMLCommonAttributes";b:1;s:19:"XMLCommonAttributes";b:1;s:16:"CommonAttributes";b:1;}s:18:"HTML.CustomDoctype";N;s:17:"HTML.DefinitionID";N;s:18:"HTML.DefinitionRev";i:1;s:12:"HTML.Doctype";N;s:25:"HTML.FlashAllowFullScreen";b:0;s:24:"HTML.ForbiddenAttributes";a:0:{}s:22:"HTML.ForbiddenElements";a:0:{}s:10:"HTML.Forms";b:0;s:17:"HTML.MaxImgLength";i:1200;s:13:"HTML.Nofollow";b:0;s:11:"HTML.Parent";s:3:"div";s:16:"HTML.Proprietary";b:0;s:14:"HTML.SafeEmbed";b:0;s:15:"HTML.SafeIframe";b:0;s:15:"HTML.SafeObject";b:0;s:18:"HTML.SafeScripting";a:0:{}s:11:"HTML.Strict";b:0;s:16:"HTML.TargetBlank";b:0;s:19:"HTML.TargetNoopener";b:1;s:21:"HTML.TargetNoreferrer";b:1;s:12:"HTML.TidyAdd";a:0:{}s:14:"HTML.TidyLevel";s:6:"medium";s:15:"HTML.TidyRemove";a:0:{}s:12:"HTML.Trusted";b:0;s:10:"HTML.XHTML";b:1;s:28:"Output.CommentScriptContents";b:1;s:19:"Output.FixInnerHTML";b:1;s:18:"Output.FlashCompat";b:0;s:14:"Output.Newline";N;s:15:"Output.SortAttr";b:0;s:17:"Output.TidyFormat";b:0;s:17:"Test.ForceNoIconv";b:0;s:18:"URI.AllowedSchemes";a:7:{s:4:"http";b:1;s:5:"https";b:1;s:6:"mailto";b:1;s:3:"ftp";b:1;s:4:"nntp";b:1;s:4:"news";b:1;s:3:"tel";b:1;}s:8:"URI.Base";N;s:17:"URI.DefaultScheme";s:4:"http";s:16:"URI.DefinitionID";N;s:17:"URI.DefinitionRev";i:1;s:11:"URI.Disable";b:0;s:19:"URI.DisableExternal";b:0;s:28:"URI.DisableExternalResources";b:0;s:20:"URI.DisableResources";b:0;s:8:"URI.Host";N;s:17:"URI.HostBlacklist";a:0:{}s:16:"URI.MakeAbsolute";b:0;s:9:"URI.Munge";N;s:18:"URI.MungeResources";b:0;s:18:"URI.MungeSecretKey";N;s:26:"URI.OverrideAllowedSchemes";b:1;s:20:"URI.SafeIframeRegexp";N;}s:9:"*parent";N;s:8:"*cache";N;}s:4:"info";a:140:{s:19:"Attr.AllowedClasses";i:-8;s:24:"Attr.AllowedFrameTargets";i:8;s:15:"Attr.AllowedRel";i:8;s:15:"Attr.AllowedRev";i:8;s:18:"Attr.ClassUseCDATA";i:-7;s:20:"Attr.DefaultImageAlt";i:-1;s:24:"Attr.DefaultInvalidImage";i:1;s:27:"Attr.DefaultInvalidImageAlt";i:1;s:19:"Attr.DefaultTextDir";O:8:"stdClass":2:{s:4:"type";i:1;s:7:"allowed";a:2:{s:3:"ltr";b:1;s:3:"rtl";b:1;}}s:13:"Attr.EnableID";i:7;s:17:"HTML.EnableAttrID";O:8:"stdClass":2:{s:3:"key";s:13:"Attr.EnableID";s:7:"isAlias";b:1;}s:21:"Attr.ForbiddenClasses";i:8;s:13:"Attr.ID.HTML5";i:-7;s:16:"Attr.IDBlacklist";i:9;s:22:"Attr.IDBlacklistRegexp";i:-1;s:13:"Attr.IDPrefix";i:1;s:18:"Attr.IDPrefixLocal";i:1;s:24:"AutoFormat.AutoParagraph";i:7;s:17:"AutoFormat.Custom";i:9;s:25:"AutoFormat.DisplayLinkURI";i:7;s:18:"AutoFormat.Linkify";i:7;s:33:"AutoFormat.PurifierLinkify.DocURL";i:1;s:37:"AutoFormatParam.PurifierLinkifyDocURL";O:8:"stdClass":2:{s:3:"key";s:33:"AutoFormat.PurifierLinkify.DocURL";s:7:"isAlias";b:1;}s:26:"AutoFormat.PurifierLinkify";i:7;s:32:"AutoFormat.RemoveEmpty.Predicate";i:10;s:44:"AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions";i:8;s:33:"AutoFormat.RemoveEmpty.RemoveNbsp";i:7;s:22:"AutoFormat.RemoveEmpty";i:7;s:39:"AutoFormat.RemoveSpansWithoutAttributes";i:7;s:19:"CSS.AllowDuplicates";i:7;s:18:"CSS.AllowImportant";i:7;s:15:"CSS.AllowTricky";i:7;s:16:"CSS.AllowedFonts";i:-8;s:21:"CSS.AllowedProperties";i:-8;s:17:"CSS.DefinitionRev";i:5;s:23:"CSS.ForbiddenProperties";i:8;s:16:"CSS.MaxImgLength";i:-1;s:15:"CSS.Proprietary";i:7;s:11:"CSS.Trusted";i:7;s:20:"Cache.DefinitionImpl";i:-1;s:20:"Core.DefinitionCache";O:8:"stdClass":2:{s:3:"key";s:20:"Cache.DefinitionImpl";s:7:"isAlias";b:1;}s:20:"Cache.SerializerPath";i:-1;s:27:"Cache.SerializerPermissions";i:-5;s:22:"Core.AggressivelyFixLt";i:7;s:29:"Core.AggressivelyRemoveScript";i:7;s:28:"Core.AllowHostnameUnderscore";i:7;s:23:"Core.AllowParseManyTags";i:7;s:18:"Core.CollectErrors";i:7;s:18:"Core.ColorKeywords";i:10;s:30:"Core.ConvertDocumentToFragment";i:7;s:24:"Core.AcceptFullDocuments";O:8:"stdClass":2:{s:3:"key";s:30:"Core.ConvertDocumentToFragment";s:7:"isAlias";b:1;}s:36:"Core.DirectLexLineNumberSyncInterval";i:5;s:20:"Core.DisableExcludes";i:7;s:15:"Core.EnableIDNA";i:7;s:13:"Core.Encoding";i:2;s:26:"Core.EscapeInvalidChildren";i:7;s:22:"Core.EscapeInvalidTags";i:7;s:29:"Core.EscapeNonASCIICharacters";i:7;s:19:"Core.HiddenElements";i:8;s:13:"Core.Language";i:1;s:24:"Core.LegacyEntityDecoder";i:7;s:14:"Core.LexerImpl";i:-11;s:24:"Core.MaintainLineNumbers";i:-7;s:22:"Core.NormalizeNewlines";i:7;s:21:"Core.RemoveInvalidImg";i:7;s:33:"Core.RemoveProcessingInstructions";i:7;s:25:"Core.RemoveScriptContents";i:-7;s:13:"Filter.Custom";i:9;s:34:"Filter.ExtractStyleBlocks.Escaping";i:7;s:33:"Filter.ExtractStyleBlocksEscaping";O:8:"stdClass":2:{s:3:"key";s:34:"Filter.ExtractStyleBlocks.Escaping";s:7:"isAlias";b:1;}s:38:"FilterParam.ExtractStyleBlocksEscaping";O:8:"stdClass":2:{s:3:"key";s:34:"Filter.ExtractStyleBlocks.Escaping";s:7:"isAlias";b:1;}s:31:"Filter.ExtractStyleBlocks.Scope";i:-1;s:30:"Filter.ExtractStyleBlocksScope";O:8:"stdClass":2:{s:3:"key";s:31:"Filter.ExtractStyleBlocks.Scope";s:7:"isAlias";b:1;}s:35:"FilterParam.ExtractStyleBlocksScope";O:8:"stdClass":2:{s:3:"key";s:31:"Filter.ExtractStyleBlocks.Scope";s:7:"isAlias";b:1;}s:34:"Filter.ExtractStyleBlocks.TidyImpl";i:-11;s:38:"FilterParam.ExtractStyleBlocksTidyImpl";O:8:"stdClass":2:{s:3:"key";s:34:"Filter.ExtractStyleBlocks.TidyImpl";s:7:"isAlias";b:1;}s:25:"Filter.ExtractStyleBlocks";i:7;s:14:"Filter.YouTube";i:7;s:12:"HTML.Allowed";i:-4;s:22:"HTML.AllowedAttributes";i:-8;s:20:"HTML.AllowedComments";i:8;s:26:"HTML.AllowedCommentsRegexp";i:-1;s:20:"HTML.AllowedElements";i:-8;s:19:"HTML.AllowedModules";i:-8;s:23:"HTML.Attr.Name.UseCDATA";i:7;s:17:"HTML.BlockWrapper";i:1;s:16:"HTML.CoreModules";i:8;s:18:"HTML.CustomDoctype";i:-1;s:17:"HTML.DefinitionID";i:-1;s:18:"HTML.DefinitionRev";i:5;s:12:"HTML.Doctype";O:8:"stdClass":3:{s:4:"type";i:1;s:10:"allow_null";b:1;s:7:"allowed";a:5:{s:22:"HTML 4.01 Transitional";b:1;s:16:"HTML 4.01 Strict";b:1;s:22:"XHTML 1.0 Transitional";b:1;s:16:"XHTML 1.0 Strict";b:1;s:9:"XHTML 1.1";b:1;}}s:25:"HTML.FlashAllowFullScreen";i:7;s:24:"HTML.ForbiddenAttributes";i:8;s:22:"HTML.ForbiddenElements";i:8;s:10:"HTML.Forms";i:7;s:17:"HTML.MaxImgLength";i:-5;s:13:"HTML.Nofollow";i:7;s:11:"HTML.Parent";i:1;s:16:"HTML.Proprietary";i:7;s:14:"HTML.SafeEmbed";i:7;s:15:"HTML.SafeIframe";i:7;s:15:"HTML.SafeObject";i:7;s:18:"HTML.SafeScripting";i:8;s:11:"HTML.Strict";i:7;s:16:"HTML.TargetBlank";i:7;s:19:"HTML.TargetNoopener";i:7;s:21:"HTML.TargetNoreferrer";i:7;s:12:"HTML.TidyAdd";i:8;s:14:"HTML.TidyLevel";O:8:"stdClass":2:{s:4:"type";i:1;s:7:"allowed";a:4:{s:4:"none";b:1;s:5:"light";b:1;s:6:"medium";b:1;s:5:"heavy";b:1;}}s:15:"HTML.TidyRemove";i:8;s:12:"HTML.Trusted";i:7;s:10:"HTML.XHTML";i:7;s:10:"Core.XHTML";O:8:"stdClass":2:{s:3:"key";s:10:"HTML.XHTML";s:7:"isAlias";b:1;}s:28:"Output.CommentScriptContents";i:7;s:26:"Core.CommentScriptContents";O:8:"stdClass":2:{s:3:"key";s:28:"Output.CommentScriptContents";s:7:"isAlias";b:1;}s:19:"Output.FixInnerHTML";i:7;s:18:"Output.FlashCompat";i:7;s:14:"Output.Newline";i:-1;s:15:"Output.SortAttr";i:7;s:17:"Output.TidyFormat";i:7;s:15:"Core.TidyFormat";O:8:"stdClass":2:{s:3:"key";s:17:"Output.TidyFormat";s:7:"isAlias";b:1;}s:17:"Test.ForceNoIconv";i:7;s:18:"URI.AllowedSchemes";i:8;s:8:"URI.Base";i:-1;s:17:"URI.DefaultScheme";i:-1;s:16:"URI.DefinitionID";i:-1;s:17:"URI.DefinitionRev";i:5;s:11:"URI.Disable";i:7;s:15:"Attr.DisableURI";O:8:"stdClass":2:{s:3:"key";s:11:"URI.Disable";s:7:"isAlias";b:1;}s:19:"URI.DisableExternal";i:7;s:28:"URI.DisableExternalResources";i:7;s:20:"URI.DisableResources";i:7;s:8:"URI.Host";i:-1;s:17:"URI.HostBlacklist";i:9;s:16:"URI.MakeAbsolute";i:7;s:9:"URI.Munge";i:-1;s:18:"URI.MungeResources";i:7;s:18:"URI.MungeSecretKey";i:-1;s:26:"URI.OverrideAllowedSchemes";i:7;s:20:"URI.SafeIframeRegexp";i:-1;}} \ No newline at end of file diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedClasses.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedFrameTargets.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRel.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.AllowedRev.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ClassUseCDATA.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultImageAlt.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImage.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultInvalidImageAlt.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.DefaultTextDir.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.EnableID.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ForbiddenClasses.txt diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ID.HTML5.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ID.HTML5.txt new file mode 100644 index 0000000..735d4b7 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.ID.HTML5.txt @@ -0,0 +1,10 @@ +Attr.ID.HTML5 +TYPE: bool/null +DEFAULT: null +VERSION: 4.8.0 +--DESCRIPTION-- +In HTML5, restrictions on the format of the id attribute have been significantly +relaxed, such that any string is valid so long as it contains no spaces and +is at least one character. In lieu of a general HTML5 compatibility flag, +set this configuration directive to true to use the relaxed rules. +--# vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklist.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDBlacklistRegexp.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefix.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Attr.IDPrefixLocal.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.AutoParagraph.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Custom.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.DisplayLinkURI.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.Linkify.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.DocURL.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.PurifierLinkify.txt diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.Predicate.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.Predicate.txt new file mode 100644 index 0000000..6367fe2 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.Predicate.txt @@ -0,0 +1,14 @@ +AutoFormat.RemoveEmpty.Predicate +TYPE: hash +VERSION: 4.7.0 +DEFAULT: array('colgroup' => array(), 'th' => array(), 'td' => array(), 'iframe' => array('src')) +--DESCRIPTION-- +

+ Given that an element has no contents, it will be removed by default, unless + this predicate dictates otherwise. The predicate can either be an associative + map from tag name to list of attributes that must be present for the element + to be considered preserved: thus, the default always preserves colgroup, + th and td, and also iframe if it + has a src. +

+--# vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt similarity index 89% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt index ca17eb1..9228dee 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.RemoveNbsp.txt @@ -6,7 +6,7 @@ DEFAULT: false

When enabled, HTML Purifier will treat any elements that contain only non-breaking spaces as well as regular whitespace as empty, and remove - them when %AutoForamt.RemoveEmpty is enabled. + them when %AutoFormat.RemoveEmpty is enabled.

See %AutoFormat.RemoveEmpty.RemoveNbsp.Exceptions for a list of elements diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveSpansWithoutAttributes.txt diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowDuplicates.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowDuplicates.txt new file mode 100644 index 0000000..4d054b1 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowDuplicates.txt @@ -0,0 +1,11 @@ +CSS.AllowDuplicates +TYPE: bool +DEFAULT: false +VERSION: 4.8.0 +--DESCRIPTION-- +

+ By default, HTML Purifier removes duplicate CSS properties, + like color:red; color:blue. If this is set to + true, duplicate properties are allowed. +

+--# vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowImportant.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowTricky.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.AllowedProperties.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.DefinitionRev.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.ForbiddenProperties.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.MaxImgLength.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Proprietary.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.DefinitionImpl.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPath.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt similarity index 59% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt index b2b83d9..2e0cc81 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt @@ -1,5 +1,5 @@ Cache.SerializerPermissions -TYPE: int +TYPE: int/null VERSION: 4.3.0 DEFAULT: 0755 --DESCRIPTION-- @@ -8,4 +8,9 @@ DEFAULT: 0755 Directory permissions of the files and directories created inside the DefinitionCache/Serializer or other custom serializer path.

+

+ In HTML Purifier 4.8.0, this also supports NULL, + which means that no chmod'ing or directory creation shall + occur. +

--# vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyFixLt.txt diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyRemoveScript.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyRemoveScript.txt new file mode 100644 index 0000000..b2b6ab1 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AggressivelyRemoveScript.txt @@ -0,0 +1,16 @@ +Core.AggressivelyRemoveScript +TYPE: bool +VERSION: 4.9.0 +DEFAULT: true +--DESCRIPTION-- +

+ This directive enables aggressive pre-filter removal of + script tags. This is not necessary for security, + but it can help work around a bug in libxml where embedded + HTML elements inside script sections cause the parser to + choke. To revert to pre-4.9.0 behavior, set this to false. + This directive has no effect if %Core.Trusted is true, + %Core.RemoveScriptContents is false, or %Core.HiddenElements + does not contain script. +

+--# vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowHostnameUnderscore.txt diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowParseManyTags.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowParseManyTags.txt new file mode 100644 index 0000000..06278f8 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.AllowParseManyTags.txt @@ -0,0 +1,12 @@ +Core.AllowParseManyTags +TYPE: bool +DEFAULT: false +VERSION: 4.10.1 +--DESCRIPTION-- +

+ This directive allows parsing of many nested tags. + If you set true, relaxes any hardcoded limit from the parser. + However, in that case it may cause a Dos attack. + Be careful when enabling it. +

+--# vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.CollectErrors.txt diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt new file mode 100644 index 0000000..a75844c --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ColorKeywords.txt @@ -0,0 +1,160 @@ +Core.ColorKeywords +TYPE: hash +VERSION: 2.0.0 +--DEFAULT-- +array ( + 'aliceblue' => '#F0F8FF', + 'antiquewhite' => '#FAEBD7', + 'aqua' => '#00FFFF', + 'aquamarine' => '#7FFFD4', + 'azure' => '#F0FFFF', + 'beige' => '#F5F5DC', + 'bisque' => '#FFE4C4', + 'black' => '#000000', + 'blanchedalmond' => '#FFEBCD', + 'blue' => '#0000FF', + 'blueviolet' => '#8A2BE2', + 'brown' => '#A52A2A', + 'burlywood' => '#DEB887', + 'cadetblue' => '#5F9EA0', + 'chartreuse' => '#7FFF00', + 'chocolate' => '#D2691E', + 'coral' => '#FF7F50', + 'cornflowerblue' => '#6495ED', + 'cornsilk' => '#FFF8DC', + 'crimson' => '#DC143C', + 'cyan' => '#00FFFF', + 'darkblue' => '#00008B', + 'darkcyan' => '#008B8B', + 'darkgoldenrod' => '#B8860B', + 'darkgray' => '#A9A9A9', + 'darkgrey' => '#A9A9A9', + 'darkgreen' => '#006400', + 'darkkhaki' => '#BDB76B', + 'darkmagenta' => '#8B008B', + 'darkolivegreen' => '#556B2F', + 'darkorange' => '#FF8C00', + 'darkorchid' => '#9932CC', + 'darkred' => '#8B0000', + 'darksalmon' => '#E9967A', + 'darkseagreen' => '#8FBC8F', + 'darkslateblue' => '#483D8B', + 'darkslategray' => '#2F4F4F', + 'darkslategrey' => '#2F4F4F', + 'darkturquoise' => '#00CED1', + 'darkviolet' => '#9400D3', + 'deeppink' => '#FF1493', + 'deepskyblue' => '#00BFFF', + 'dimgray' => '#696969', + 'dimgrey' => '#696969', + 'dodgerblue' => '#1E90FF', + 'firebrick' => '#B22222', + 'floralwhite' => '#FFFAF0', + 'forestgreen' => '#228B22', + 'fuchsia' => '#FF00FF', + 'gainsboro' => '#DCDCDC', + 'ghostwhite' => '#F8F8FF', + 'gold' => '#FFD700', + 'goldenrod' => '#DAA520', + 'gray' => '#808080', + 'grey' => '#808080', + 'green' => '#008000', + 'greenyellow' => '#ADFF2F', + 'honeydew' => '#F0FFF0', + 'hotpink' => '#FF69B4', + 'indianred' => '#CD5C5C', + 'indigo' => '#4B0082', + 'ivory' => '#FFFFF0', + 'khaki' => '#F0E68C', + 'lavender' => '#E6E6FA', + 'lavenderblush' => '#FFF0F5', + 'lawngreen' => '#7CFC00', + 'lemonchiffon' => '#FFFACD', + 'lightblue' => '#ADD8E6', + 'lightcoral' => '#F08080', + 'lightcyan' => '#E0FFFF', + 'lightgoldenrodyellow' => '#FAFAD2', + 'lightgray' => '#D3D3D3', + 'lightgrey' => '#D3D3D3', + 'lightgreen' => '#90EE90', + 'lightpink' => '#FFB6C1', + 'lightsalmon' => '#FFA07A', + 'lightseagreen' => '#20B2AA', + 'lightskyblue' => '#87CEFA', + 'lightslategray' => '#778899', + 'lightslategrey' => '#778899', + 'lightsteelblue' => '#B0C4DE', + 'lightyellow' => '#FFFFE0', + 'lime' => '#00FF00', + 'limegreen' => '#32CD32', + 'linen' => '#FAF0E6', + 'magenta' => '#FF00FF', + 'maroon' => '#800000', + 'mediumaquamarine' => '#66CDAA', + 'mediumblue' => '#0000CD', + 'mediumorchid' => '#BA55D3', + 'mediumpurple' => '#9370DB', + 'mediumseagreen' => '#3CB371', + 'mediumslateblue' => '#7B68EE', + 'mediumspringgreen' => '#00FA9A', + 'mediumturquoise' => '#48D1CC', + 'mediumvioletred' => '#C71585', + 'midnightblue' => '#191970', + 'mintcream' => '#F5FFFA', + 'mistyrose' => '#FFE4E1', + 'moccasin' => '#FFE4B5', + 'navajowhite' => '#FFDEAD', + 'navy' => '#000080', + 'oldlace' => '#FDF5E6', + 'olive' => '#808000', + 'olivedrab' => '#6B8E23', + 'orange' => '#FFA500', + 'orangered' => '#FF4500', + 'orchid' => '#DA70D6', + 'palegoldenrod' => '#EEE8AA', + 'palegreen' => '#98FB98', + 'paleturquoise' => '#AFEEEE', + 'palevioletred' => '#DB7093', + 'papayawhip' => '#FFEFD5', + 'peachpuff' => '#FFDAB9', + 'peru' => '#CD853F', + 'pink' => '#FFC0CB', + 'plum' => '#DDA0DD', + 'powderblue' => '#B0E0E6', + 'purple' => '#800080', + 'rebeccapurple' => '#663399', + 'red' => '#FF0000', + 'rosybrown' => '#BC8F8F', + 'royalblue' => '#4169E1', + 'saddlebrown' => '#8B4513', + 'salmon' => '#FA8072', + 'sandybrown' => '#F4A460', + 'seagreen' => '#2E8B57', + 'seashell' => '#FFF5EE', + 'sienna' => '#A0522D', + 'silver' => '#C0C0C0', + 'skyblue' => '#87CEEB', + 'slateblue' => '#6A5ACD', + 'slategray' => '#708090', + 'slategrey' => '#708090', + 'snow' => '#FFFAFA', + 'springgreen' => '#00FF7F', + 'steelblue' => '#4682B4', + 'tan' => '#D2B48C', + 'teal' => '#008080', + 'thistle' => '#D8BFD8', + 'tomato' => '#FF6347', + 'turquoise' => '#40E0D0', + 'violet' => '#EE82EE', + 'wheat' => '#F5DEB3', + 'white' => '#FFFFFF', + 'whitesmoke' => '#F5F5F5', + 'yellow' => '#FFFF00', + 'yellowgreen' => '#9ACD32' +) +--DESCRIPTION-- + +Lookup array of color names to six digit hexadecimal number corresponding +to color, with preceding hash mark. Used when parsing colors. The lookup +is done in a case-insensitive manner. +--# vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.ConvertDocumentToFragment.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DirectLexLineNumberSyncInterval.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.DisableExcludes.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Encoding.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidChildren.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeInvalidTags.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.EscapeNonASCIICharacters.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.HiddenElements.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Language.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.Language.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.Language.txt diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LegacyEntityDecoder.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LegacyEntityDecoder.txt new file mode 100644 index 0000000..392b436 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LegacyEntityDecoder.txt @@ -0,0 +1,36 @@ +Core.LegacyEntityDecoder +TYPE: bool +VERSION: 4.9.0 +DEFAULT: false +--DESCRIPTION-- +

+ Prior to HTML Purifier 4.9.0, entities were decoded by performing + a global search replace for all entities whose decoded versions + did not have special meanings under HTML, and replaced them with + their decoded versions. We would match all entities, even if they did + not have a trailing semicolon, but only if there weren't any trailing + alphanumeric characters. +

+ + + + + + +
OriginalTextAttribute
&yen;¥¥
&yen¥¥
&yena&yena&yena
&yen=¥=¥=
+

+ In HTML Purifier 4.9.0, we changed the behavior of entity parsing + to match entities that had missing trailing semicolons in less + cases, to more closely match HTML5 parsing behavior: +

+ + + + + + +
OriginalTextAttribute
&yen;¥¥
&yen¥¥
&yena¥a&yena
&yen=¥=&yen=
+

+ This flag reverts back to pre-HTML Purifier 4.9.0 behavior. +

+--# vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.LexerImpl.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.MaintainLineNumbers.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.NormalizeNewlines.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveInvalidImg.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveProcessingInstructions.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Core.RemoveScriptContents.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.Custom.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Escaping.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.Scope.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.TidyImpl.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.ExtractStyleBlocks.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Filter.YouTube.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Allowed.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedAttributes.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedElements.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.AllowedModules.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Attr.Name.UseCDATA.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.BlockWrapper.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CoreModules.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt similarity index 72% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt index a64e3d7..6ed70b5 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.CustomDoctype.txt @@ -4,6 +4,6 @@ VERSION: 2.0.1 DEFAULT: NULL --DESCRIPTION-- -A custom doctype for power-users who defined there own document +A custom doctype for power-users who defined their own document type. This directive only applies when %HTML.Doctype is blank. --# vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionID.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.DefinitionRev.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Doctype.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.FlashAllowFullScreen.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenAttributes.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.ForbiddenElements.txt diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Forms.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Forms.txt new file mode 100644 index 0000000..4a432d8 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Forms.txt @@ -0,0 +1,11 @@ +HTML.Forms +TYPE: bool +VERSION: 4.13.0 +DEFAULT: false +--DESCRIPTION-- +

+ Whether or not to permit form elements in the user input, regardless of + %HTML.Trusted value. Please be very careful when using this functionality, as + enabling forms in untrusted documents may allow for phishing attacks. +

+--# vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.MaxImgLength.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Parent.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Proprietary.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeEmbed.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeObject.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.SafeScripting.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Strict.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoopener.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoopener.txt new file mode 100644 index 0000000..dd514c0 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoopener.txt @@ -0,0 +1,10 @@ +--# vim: et sw=4 sts=4 +HTML.TargetNoopener +TYPE: bool +VERSION: 4.8.0 +DEFAULT: TRUE +--DESCRIPTION-- +If enabled, noopener rel attributes are added to links which have +a target attribute associated with them. This prevents malicious +destinations from overwriting the original window. +--# vim: et sw=4 sts=4 diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoreferrer.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoreferrer.txt new file mode 100644 index 0000000..cb5a0b0 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TargetNoreferrer.txt @@ -0,0 +1,9 @@ +HTML.TargetNoreferrer +TYPE: bool +VERSION: 4.8.0 +DEFAULT: TRUE +--DESCRIPTION-- +If enabled, noreferrer rel attributes are added to links which have +a target attribute associated with them. This prevents malicious +destinations from overwriting the original window. +--# vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyAdd.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyLevel.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.TidyRemove.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.Trusted.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/HTML.XHTML.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.CommentScriptContents.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FixInnerHTML.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.FlashCompat.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.Newline.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.SortAttr.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Output.TidyFormat.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/Test.ForceNoIconv.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt similarity index 96% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt index 666635a..eb97307 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.AllowedSchemes.txt @@ -8,6 +8,7 @@ array ( 'ftp' => true, 'nntp' => true, 'news' => true, + 'tel' => true, ) --DESCRIPTION-- Whitelist that defines the schemes that a URI is allowed to have. This diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Base.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Base.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Base.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt similarity index 57% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt index 728e378..834bc08 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefaultScheme.txt @@ -1,5 +1,5 @@ URI.DefaultScheme -TYPE: string +TYPE: string/null DEFAULT: 'http' --DESCRIPTION-- @@ -7,4 +7,9 @@ DEFAULT: 'http' Defines through what scheme the output will be served, in order to select the proper object validator when no scheme information is present.

+ +

+ Starting with HTML Purifier 4.9.0, the default scheme can be null, in + which case we reject all URIs which do not have explicit schemes. +

--# vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionID.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DefinitionRev.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Disable.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternal.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableExternalResources.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.DisableResources.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Host.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Host.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Host.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.HostBlacklist.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MakeAbsolute.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.Munge.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeResources.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.MungeSecretKey.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.OverrideAllowedSchemes.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/info.ini b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/info.ini similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ConfigSchema/schema/info.ini rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ConfigSchema/schema/info.ini diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ContentSets.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ContentSets.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ContentSets.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ContentSets.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/Context.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Context.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/Context.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Context.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/Definition.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Definition.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/Definition.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Definition.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache.php similarity index 98% rename from web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache.php index 67bb5b1..9aa8ff3 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache.php @@ -118,7 +118,7 @@ abstract class HTMLPurifier_DefinitionCache /** * Clears all expired (older version or revision) objects from cache - * @note Be carefuly implementing this method as flush. Flush must + * @note Be careful implementing this method as flush. Flush must * not interfere with other Definition types, and cleanup() * should not be repeatedly called by userland code. * @param HTMLPurifier_Config $config diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Cleanup.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Memory.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Memory.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Memory.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Template.php.in similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Decorator/Template.php.in rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Decorator/Template.php.in diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Null.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Null.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Null.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Null.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php similarity index 86% rename from web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php index ecacb88..b82c6bb 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php @@ -97,6 +97,12 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac } $dir = $this->generateDirectoryPath($config); $dh = opendir($dir); + // Apparently, on some versions of PHP, readdir will return + // an empty string if you pass an invalid argument to readdir. + // So you need this test. See #49. + if (false === $dh) { + return false; + } while (false !== ($filename = readdir($dh))) { if (empty($filename)) { continue; @@ -106,6 +112,8 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac } unlink($dir . '/' . $filename); } + closedir($dh); + return true; } /** @@ -119,6 +127,10 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac } $dir = $this->generateDirectoryPath($config); $dh = opendir($dir); + // See #49 (and above). + if (false === $dh) { + return false; + } while (false !== ($filename = readdir($dh))) { if (empty($filename)) { continue; @@ -131,6 +143,8 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac unlink($dir . '/' . $filename); } } + closedir($dh); + return true; } /** @@ -186,11 +200,9 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac if ($result !== false) { // set permissions of the new file (no execute) $chmod = $config->get('Cache.SerializerPermissions'); - if (!$chmod) { - $chmod = 0644; // invalid config or simpletest + if ($chmod !== null) { + chmod($file, $chmod & 0666); } - $chmod = $chmod & 0666; - chmod($file, $chmod); } return $result; } @@ -204,8 +216,15 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac { $directory = $this->generateDirectoryPath($config); $chmod = $config->get('Cache.SerializerPermissions'); - if (!$chmod) { - $chmod = 0755; // invalid config or simpletest + if ($chmod === null) { + if (!@mkdir($directory) && !is_dir($directory)) { + trigger_error( + 'Could not create directory ' . $directory . '', + E_USER_WARNING + ); + return false; + } + return true; } if (!is_dir($directory)) { $base = $this->generateBaseDirectoryPath($config); @@ -219,9 +238,16 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac } elseif (!$this->_testPermissions($base, $chmod)) { return false; } - $old = umask(0000); - mkdir($directory, $chmod); - umask($old); + if (!@mkdir($directory, $chmod) && !is_dir($directory)) { + trigger_error( + 'Could not create directory ' . $directory . '', + E_USER_WARNING + ); + return false; + } + if (!$this->_testPermissions($directory, $chmod)) { + return false; + } } elseif (!$this->_testPermissions($directory, $chmod)) { return false; } @@ -250,7 +276,7 @@ class HTMLPurifier_DefinitionCache_Serializer extends HTMLPurifier_DefinitionCac ); return false; } - if (function_exists('posix_getuid')) { + if (function_exists('posix_getuid') && $chmod !== null) { // POSIX system, we can give more specific advice if (fileowner($dir) === posix_getuid()) { // we can chmod it ourselves diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/README b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README old mode 100644 new mode 100755 similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer/README rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer/README diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCacheFactory.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/DefinitionCacheFactory.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/Doctype.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Doctype.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/Doctype.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Doctype.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/DoctypeRegistry.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DoctypeRegistry.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/DoctypeRegistry.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DoctypeRegistry.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ElementDef.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php similarity index 98% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ElementDef.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php index d5311ce..57cfd2b 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/ElementDef.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ElementDef.php @@ -176,7 +176,7 @@ class HTMLPurifier_ElementDef if (!empty($def->content_model)) { $this->content_model = - str_replace("#SUPER", $this->content_model, $def->content_model); + str_replace("#SUPER", (string)$this->content_model, $def->content_model); $this->child = false; } if (!empty($def->content_model_type)) { diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/Encoder.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php similarity index 96% rename from web/app/vendor/htmlpurifier/HTMLPurifier/Encoder.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php index fef9b58..d4791cc 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/Encoder.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Encoder.php @@ -101,6 +101,14 @@ class HTMLPurifier_Encoder * It will parse according to UTF-8 and return a valid UTF8 string, with * non-SGML codepoints excluded. * + * Specifically, it will permit: + * \x{9}\x{A}\x{D}\x{20}-\x{7E}\x{A0}-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF} + * Source: https://www.w3.org/TR/REC-xml/#NT-Char + * Arguably this function should be modernized to the HTML5 set + * of allowed characters: + * https://www.w3.org/TR/html5/syntax.html#preprocessing-the-input-stream + * which simultaneously expand and restrict the set of allowed characters. + * * @param string $str The string to clean * @param bool $force_php * @return string @@ -122,15 +130,12 @@ class HTMLPurifier_Encoder * function that needs to be able to understand UTF-8 characters. * As of right now, only smart lossless character encoding converters * would need that, and I'm probably not going to implement them. - * Once again, PHP 6 should solve all our problems. */ public static function cleanUTF8($str, $force_php = false) { // UTF-8 validity is checked since PHP 4.3.5 // This is an optimization: if the string is already valid UTF-8, no // need to do PHP stuff. 99% of the time, this will be the case. - // The regexp matches the XML char production, as well as well as excluding - // non-SGML codepoints U+007F to U+009F if (preg_match( '/^[\x{9}\x{A}\x{D}\x{20}-\x{7E}\x{A0}-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}]*$/Du', $str @@ -154,7 +159,7 @@ class HTMLPurifier_Encoder $len = strlen($str); for ($i = 0; $i < $len; $i++) { - $in = ord($str{$i}); + $in = ord($str[$i]); $char .= $str[$i]; // append byte to char if (0 == $mState) { // When mState is zero we expect either a US-ASCII character @@ -255,6 +260,7 @@ class HTMLPurifier_Encoder // 7F-9F is not strictly prohibited by XML, // but it is non-SGML, and thus we don't allow it (0xA0 <= $mUcs4 && 0xD7FF >= $mUcs4) || + (0xE000 <= $mUcs4 && 0xFFFD >= $mUcs4) || (0x10000 <= $mUcs4 && 0x10FFFF >= $mUcs4) ) ) { @@ -392,8 +398,8 @@ class HTMLPurifier_Encoder // characters to their true byte-wise ASCII/UTF-8 equivalents. $str = strtr($str, self::testEncodingSupportsASCII($encoding)); return $str; - } elseif ($encoding === 'iso-8859-1') { - $str = utf8_encode($str); + } elseif ($encoding === 'iso-8859-1' && function_exists('mb_convert_encoding')) { + $str = mb_convert_encoding($str, 'UTF-8', 'ISO-8859-1'); return $str; } $bug = HTMLPurifier_Encoder::testIconvTruncateBug(); @@ -444,8 +450,8 @@ class HTMLPurifier_Encoder // Normal stuff $str = self::iconv('utf-8', $encoding . '//IGNORE', $str); return $str; - } elseif ($encoding === 'iso-8859-1') { - $str = utf8_decode($str); + } elseif ($encoding === 'iso-8859-1' && function_exists('mb_convert_encoding')) { + $str = mb_convert_encoding($str, 'ISO-8859-1', 'UTF-8'); return $str; } trigger_error('Encoding not supported', E_USER_ERROR); diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/EntityLookup.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/EntityLookup.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/EntityLookup/entities.ser b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup/entities.ser similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/EntityLookup/entities.ser rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityLookup/entities.ser diff --git a/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityParser.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityParser.php new file mode 100644 index 0000000..3ef2d09 --- /dev/null +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/EntityParser.php @@ -0,0 +1,285 @@ +_semiOptionalPrefixRegex = "/&()()()($semi_optional)/"; + + $this->_textEntitiesRegex = + '/&(?:'. + // hex + '[#]x([a-fA-F0-9]+);?|'. + // dec + '[#]0*(\d+);?|'. + // string (mandatory semicolon) + // NB: order matters: match semicolon preferentially + '([A-Za-z_:][A-Za-z0-9.\-_:]*);|'. + // string (optional semicolon) + "($semi_optional)". + ')/'; + + $this->_attrEntitiesRegex = + '/&(?:'. + // hex + '[#]x([a-fA-F0-9]+);?|'. + // dec + '[#]0*(\d+);?|'. + // string (mandatory semicolon) + // NB: order matters: match semicolon preferentially + '([A-Za-z_:][A-Za-z0-9.\-_:]*);|'. + // string (optional semicolon) + // don't match if trailing is equals or alphanumeric (URL + // like) + "($semi_optional)(?![=;A-Za-z0-9])". + ')/'; + + } + + /** + * Substitute entities with the parsed equivalents. Use this on + * textual data in an HTML document (as opposed to attributes.) + * + * @param string $string String to have entities parsed. + * @return string Parsed string. + */ + public function substituteTextEntities($string) + { + return preg_replace_callback( + $this->_textEntitiesRegex, + array($this, 'entityCallback'), + $string + ); + } + + /** + * Substitute entities with the parsed equivalents. Use this on + * attribute contents in documents. + * + * @param string $string String to have entities parsed. + * @return string Parsed string. + */ + public function substituteAttrEntities($string) + { + return preg_replace_callback( + $this->_attrEntitiesRegex, + array($this, 'entityCallback'), + $string + ); + } + + /** + * Callback function for substituteNonSpecialEntities() that does the work. + * + * @param array $matches PCRE matches array, with 0 the entire match, and + * either index 1, 2 or 3 set with a hex value, dec value, + * or string (respectively). + * @return string Replacement string. + */ + + protected function entityCallback($matches) + { + $entity = $matches[0]; + $hex_part = @$matches[1]; + $dec_part = @$matches[2]; + $named_part = empty($matches[3]) ? (empty($matches[4]) ? "" : $matches[4]) : $matches[3]; + if ($hex_part !== NULL && $hex_part !== "") { + return HTMLPurifier_Encoder::unichr(hexdec($hex_part)); + } elseif ($dec_part !== NULL && $dec_part !== "") { + return HTMLPurifier_Encoder::unichr((int) $dec_part); + } else { + if (!$this->_entity_lookup) { + $this->_entity_lookup = HTMLPurifier_EntityLookup::instance(); + } + if (isset($this->_entity_lookup->table[$named_part])) { + return $this->_entity_lookup->table[$named_part]; + } else { + // exact match didn't match anything, so test if + // any of the semicolon optional match the prefix. + // Test that this is an EXACT match is important to + // prevent infinite loop + if (!empty($matches[3])) { + return preg_replace_callback( + $this->_semiOptionalPrefixRegex, + array($this, 'entityCallback'), + $entity + ); + } + return $entity; + } + } + } + + // LEGACY CODE BELOW + + /** + * Callback regex string for parsing entities. + * @type string + */ + protected $_substituteEntitiesRegex = + '/&(?:[#]x([a-fA-F0-9]+)|[#]0*(\d+)|([A-Za-z_:][A-Za-z0-9.\-_:]*));?/'; + // 1. hex 2. dec 3. string (XML style) + + /** + * Decimal to parsed string conversion table for special entities. + * @type array + */ + protected $_special_dec2str = + array( + 34 => '"', + 38 => '&', + 39 => "'", + 60 => '<', + 62 => '>' + ); + + /** + * Stripped entity names to decimal conversion table for special entities. + * @type array + */ + protected $_special_ent2dec = + array( + 'quot' => 34, + 'amp' => 38, + 'lt' => 60, + 'gt' => 62 + ); + + /** + * Substitutes non-special entities with their parsed equivalents. Since + * running this whenever you have parsed character is t3h 5uck, we run + * it before everything else. + * + * @param string $string String to have non-special entities parsed. + * @return string Parsed string. + */ + public function substituteNonSpecialEntities($string) + { + // it will try to detect missing semicolons, but don't rely on it + return preg_replace_callback( + $this->_substituteEntitiesRegex, + array($this, 'nonSpecialEntityCallback'), + $string + ); + } + + /** + * Callback function for substituteNonSpecialEntities() that does the work. + * + * @param array $matches PCRE matches array, with 0 the entire match, and + * either index 1, 2 or 3 set with a hex value, dec value, + * or string (respectively). + * @return string Replacement string. + */ + + protected function nonSpecialEntityCallback($matches) + { + // replaces all but big five + $entity = $matches[0]; + $is_num = (@$matches[0][1] === '#'); + if ($is_num) { + $is_hex = (@$entity[2] === 'x'); + $code = $is_hex ? hexdec($matches[1]) : (int) $matches[2]; + // abort for special characters + if (isset($this->_special_dec2str[$code])) { + return $entity; + } + return HTMLPurifier_Encoder::unichr($code); + } else { + if (isset($this->_special_ent2dec[$matches[3]])) { + return $entity; + } + if (!$this->_entity_lookup) { + $this->_entity_lookup = HTMLPurifier_EntityLookup::instance(); + } + if (isset($this->_entity_lookup->table[$matches[3]])) { + return $this->_entity_lookup->table[$matches[3]]; + } else { + return $entity; + } + } + } + + /** + * Substitutes only special entities with their parsed equivalents. + * + * @notice We try to avoid calling this function because otherwise, it + * would have to be called a lot (for every parsed section). + * + * @param string $string String to have non-special entities parsed. + * @return string Parsed string. + */ + public function substituteSpecialEntities($string) + { + return preg_replace_callback( + $this->_substituteEntitiesRegex, + array($this, 'specialEntityCallback'), + $string + ); + } + + /** + * Callback function for substituteSpecialEntities() that does the work. + * + * This callback has same syntax as nonSpecialEntityCallback(). + * + * @param array $matches PCRE-style matches array, with 0 the entire match, and + * either index 1, 2 or 3 set with a hex value, dec value, + * or string (respectively). + * @return string Replacement string. + */ + protected function specialEntityCallback($matches) + { + $entity = $matches[0]; + $is_num = (@$matches[0][1] === '#'); + if ($is_num) { + $is_hex = (@$entity[2] === 'x'); + $int = $is_hex ? hexdec($matches[1]) : (int) $matches[2]; + return isset($this->_special_dec2str[$int]) ? + $this->_special_dec2str[$int] : + $entity; + } else { + return isset($this->_special_ent2dec[$matches[3]]) ? + $this->_special_dec2str[$this->_special_ent2dec[$matches[3]]] : + $entity; + } + } +} + +// vim: et sw=4 sts=4 diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ErrorCollector.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ErrorCollector.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ErrorCollector.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ErrorCollector.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/ErrorStruct.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ErrorStruct.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/ErrorStruct.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/ErrorStruct.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/Exception.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Exception.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/Exception.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Exception.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/Filter.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter.php similarity index 100% rename from web/app/vendor/htmlpurifier/HTMLPurifier/Filter.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter.php diff --git a/web/app/vendor/htmlpurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php similarity index 97% rename from web/app/vendor/htmlpurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php rename to web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php index 08e62c1..66f70b0 100644 --- a/web/app/vendor/htmlpurifier/HTMLPurifier/Filter/ExtractStyleBlocks.php +++ b/web/app/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php @@ -95,7 +95,10 @@ class HTMLPurifier_Filter_ExtractStyleBlocks extends HTMLPurifier_Filter if ($tidy !== null) { $this->_tidy = $tidy; } - $html = preg_replace_callback('#(.+)#isU', array($this, 'styleCallback'), $html); + // NB: this must be NON-greedy because if we have + // + // we must not grab foo - - - -"; - echo exit("ERROR: Wrong PHP version. Must be PHP 5 or above."); -} - -if (count($results_messages) > 0) { - echo '

Run results

'; - echo ''; -} - -if (isset($_POST["submit"]) && $_POST["submit"] == "Submit") { - echo "
\n"; - echo "
Script:\n"; - echo "
\n";
-    echo $example_code;
-    echo "\n
\n"; - echo "\n
\n"; -} -?> -
-
-
-
- Mail Details - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
-
Test will include two attachments.
-
-
-
-
- Mail Test Specs - - - - - -
Test Type -
- - - required> -
-
- - - required> -
-
- - - required> -
-
- - - required> -
-
-
"> - SMTP Specific Options: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- -
- -
- -
- - value=""> -
- -
- -
-
-
-
-
- -
-
- -
- -
-
-
- - \ No newline at end of file diff --git a/web/app/vendor/phpmailer/examples/contents.html b/web/app/vendor/phpmailer/examples/contents.html deleted file mode 100644 index 9257f6d..0000000 --- a/web/app/vendor/phpmailer/examples/contents.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - PHPMailer Test - - -
-

This is a test of PHPMailer.

-
- PHPMailer rocks -
-

This example uses HTML.

-

The PHPMailer image at the top has been embedded automatically.

-
- - diff --git a/web/app/vendor/phpmailer/examples/exceptions.phps b/web/app/vendor/phpmailer/examples/exceptions.phps deleted file mode 100644 index e250190..0000000 --- a/web/app/vendor/phpmailer/examples/exceptions.phps +++ /dev/null @@ -1,41 +0,0 @@ - - - - - PHPMailer - Exceptions test - - -setFrom('from@example.com', 'First Last'); - //Set an alternative reply-to address - $mail->addReplyTo('replyto@example.com', 'First Last'); - //Set who the message is to be sent to - $mail->addAddress('whoto@example.com', 'John Doe'); - //Set the subject line - $mail->Subject = 'PHPMailer Exceptions test'; - //Read an HTML message body from an external file, convert referenced images to embedded, - //and convert the HTML into a basic plain-text alternative body - $mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); - //Replace the plain text body with one created manually - $mail->AltBody = 'This is a plain-text message body'; - //Attach an image file - $mail->addAttachment('images/phpmailer_mini.png'); - //send the message - //Note that we don't need check the response from this because it will throw an exception if it has trouble - $mail->send(); - echo "Message sent!"; -} catch (phpmailerException $e) { - echo $e->errorMessage(); //Pretty error messages from PHPMailer -} catch (Exception $e) { - echo $e->getMessage(); //Boring error messages from anything else! -} -?> - - diff --git a/web/app/vendor/phpmailer/examples/gmail.phps b/web/app/vendor/phpmailer/examples/gmail.phps deleted file mode 100644 index a6d4198..0000000 --- a/web/app/vendor/phpmailer/examples/gmail.phps +++ /dev/null @@ -1,79 +0,0 @@ - - - - - PHPMailer - GMail SMTP test - - -isSMTP(); - -//Enable SMTP debugging -// 0 = off (for production use) -// 1 = client messages -// 2 = client and server messages -$mail->SMTPDebug = 2; - -//Ask for HTML-friendly debug output -$mail->Debugoutput = 'html'; - -//Set the hostname of the mail server -$mail->Host = 'smtp.gmail.com'; - -//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission -$mail->Port = 587; - -//Set the encryption system to use - ssl (deprecated) or tls -$mail->SMTPSecure = 'tls'; - -//Whether to use SMTP authentication -$mail->SMTPAuth = true; - -//Username to use for SMTP authentication - use full email address for gmail -$mail->Username = "username@gmail.com"; - -//Password to use for SMTP authentication -$mail->Password = "yourpassword"; - -//Set who the message is to be sent from -$mail->setFrom('from@example.com', 'First Last'); - -//Set an alternative reply-to address -$mail->addReplyTo('replyto@example.com', 'First Last'); - -//Set who the message is to be sent to -$mail->addAddress('whoto@example.com', 'John Doe'); - -//Set the subject line -$mail->Subject = 'PHPMailer GMail SMTP test'; - -//Read an HTML message body from an external file, convert referenced images to embedded, -//convert HTML into a basic plain-text alternative body -$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); - -//Replace the plain text body with one created manually -$mail->AltBody = 'This is a plain-text message body'; - -//Attach an image file -$mail->addAttachment('images/phpmailer_mini.png'); - -//send the message, check for errors -if (!$mail->send()) { - echo "Mailer Error: " . $mail->ErrorInfo; -} else { - echo "Message sent!"; -} -?> - - diff --git a/web/app/vendor/phpmailer/examples/images/phpmailer.png b/web/app/vendor/phpmailer/examples/images/phpmailer.png deleted file mode 100644 index 9bdd83c8ded93d00b1e05abcfe1d6cb5b2ae96ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5831 zcmZ`-XE*jNYS*8Z~-kbfbkRA=)I& zL=Q&Y40Gq)^YcFU$G4xopS{2Jt@^I@?zd(p26WV1)I>x?bcXlz%!!DIEeQ9vlq7`f z)5P1NL_};!hI-l-A;h~M-afi%#W#Eg3tdJMlOkV7$H((Oj|&iz9I}fxNQi6Fd*67c zM1*OO(Lp4==ud;$&&mP4Xfs>STdPbC4CBRq2v*6efi0)WFI#+}yEx4`H=B<+a*9`5 z(EY2VGlpKdaTIfA;S+0U?EhKb!jOJBDVVSC--h|{tCM+yB%Ytm9+N|f+*vXXi&Im{ zsi}e%@$cSoi6W6mMv3FoQ+lsP=U$RStAo*g#}|K>J4y}U*N1!`OgwCDbIm+{)_y*^ zl$5&t?XP5EI;-?DB^}*WK0g?2kU*0r`hZK+Ol?N>>guW=T2xi_w*5XU2NzdgR+H;+ z(w{$nMn^}>%7hU}$SdqW&m!1m9e?S1dwbJTQ876(a&t>kVX@dZ)aMChY+mzqtgsvP zQgjDc%vc)Obj>K{j!um9*bA82I?smdXT;ae0fEny3=COhq@<)S_F|HfX=K|TTx)+O z@}?PTtsA4h+^0J@KU_D}1jt%#B_O>>v_br({1|gXeMSC`SrG#u(Jp)yvtC`fbM0I~Q`N$+o+TEn|Gxb&WoXs=@24 z%NTBsg)G+4ki&ziBG)COFZ0*HvyIW8TYW5e$LzVrx~U>uQFpgS5!wSt*^q6~`kv^9 zCG~VkC<_QfGN`Gkm9cG17P9*;U(~WiUUizsO^FDrZbI@z!(6YM>$(2SgK12?opR#R z&T6faL9f|)*{a=wK;iO=JfuH}}y!`RW?(rym++PB;s*DvH5@>0EecAdEmwYgy z)sLu7eIt|I4g3623xyjdrBkc`Q#&+V&;L}Q0@sYf%X2=c2b-TM(Y_+lgJyz$jivhX zlf&yr6aX(Tud0f7KIlSaA1+o-{Z{x#oa&H?de*oxYk_~aQ6^DRL1n#E5_{*H81fTu znV}I)B>w6Q( zxxorC;KzuxL)`JsAJkP-ov^I_CNn1=4)e`Ce>V>|U+)BC{a)mYssuAI0ya=u#d2;q zpGMR31^6x9r7_6si$Ft0cJ>Nc2))&dx`P21kI{uf93r4h&8f|dVL&ei+EPIazLbJA z4Gj3v($n9UrUz;AP!hC4=BC-&xBK_r2U1uhT0$<4t9)XwB(3VwZE?7x$=Q5-i|g4U z3H%Tk8Z85p`u#?aX=H2_P@gcn^vm#6_KbW)!rw>U_o%F|Z?h-3P1~*NuBjC zpS}|zr4S_$23*3LjVN-~_H1+;W23=%04Ny#^@l*?F*N>o##Ds(IrE+XMB$ZiF9C)# z(8B@P(q{!Vhfm+VaQSOC7rBiUdbQOO?&BF0Z92^i*j%@vpn0KRSK9;no0g&D_(qdVG1PPJs(}X1poflKz6XT-*4*BLk*~P^b2&)F|W)p2= z*EuvTa&{@%CB9f@9v~hC8t@mQ4GvqnLS`p?M^Z&jGeNA0Ac-imtPZRzHfCd@+OmfK zhVMiwIU8fa#RKRao~g&Y0Qp6?OrtoF0Aed!7P2aIzv_Fo{kDSJ=uLuB0WEE6k|O3I z!|E*~|Hx{QV%JHSeR)*WC4K(U*eGwPL)J4#kb2b2wcGf6LWaNIoX9u}-y2PFpC-RumMjV< zh5x(KMcNpLnyax&Sz@7ZIl~j zRfbB>UA?!4vS_R6^PlbwCq!7|8{oM1E`m@aq9ZiSk|h54>pbjCIvm-ohMEu7yWH@0XYuD zg+jHXU(#*M)OWT?jQNqFU5f2)@lLl{KzHXJT3Dcu9ABSjf3+lLPD0=oYNBmdt+EQe z=bJ-K^!2O{Hq<{(SLBF8T4Bt$7UDUt!pqqxV-`%IH&tOZl+^`S()hvm>|2|8<=FKj zol=^--D#r;FSlzPa4f@1jt1*QoX_}SSq81hIDQ*N-G1@soF4)PicHEL(v&@X7NVsP|!gFo1P+oGY4gm-ATKq)Co=){Y=5$IugU+j9XOknR&nb=fG6X|#TJ}KaK zKZA6q2yxIZ2m%B=@(U!LaVYybB~Yhg3=IT%1(H&YwU2dXZ7x|t$5&&(`6d<5#|<3_ zRd2=sGqbgocq%2iRo3h*@iO#>m<<>_Xx3>NCl;Y ze+Xe2o5WIN;wU+tgNmdeWA%JOw;&^Ngj%PIO8Q@Ut{o1{2?+^eLj~5*9_(dKj-p2s zj(}21=>$}}=X{*?4?txNosr}f5)zst?3-)F++DmeT4xQ-L_G(#^nx={5x6OCl}CnC z%gf^ggw)3v2(A;Rh3`?El0lmW@jXy?clV&6AQKaM&CV#4*1D*@#Ngndh=@r1c2-ta z>9;qdTv|~?V}AC~h}8zQmzr;iB?w}q5M~sww3!*z^GtWm}|b<*;GVi5Ok1E zE?l^k%9mbEFfN)N7#aqS9T5D)Dmh@J})K+a|uF-!-T`?cG zwkl_$+Ho99kHStOlalEFeW4Hihq$P^Ff;&7(|{w#P;jgoY3&y078HE@Phvw@0+fb2 z6IFzZFWB4_jPXhT*V9};V@|D!9`z216ha%&4h!qL{*nEk!9?8W+hwJ{O5FjvQ8>;k z+$OcCzTWf!bhmI{kbf+eHezS;?k|5;!f1VNZ`;0K5@Qv_#DVC2So$dhe~DDBHF9?(OalI8ANvB#PWAe8#x;a*CNo2E`2aqrD{uZorwsis{G6*GDL$g=`zK-XRGl)~><~_V@e?^FaX}qNVOgwT8CnG6 z7NNjTI&v>ma|LDlq3$)bOLFq0%P*|xXlY(EtiJolS=W!n;oD(;%kA<@$|3J}PIl&f zqH{m0?Clor%*I_0EOBqJ!ct%|UAi$7+trPq-Y7+Y+(Ob-Z+Gj}MqcDQDDtck`me-R zg`&ZJvnhO!P(G@kLLM)eyzVx&ku5-deH|8f9B*5cs{v@EAu#rS0#Om1*T15}hB-}l zEBhV1{7v9mNj$fwt&%kyTbu}UvCF>=h7F@gk^g|cXVVFc|76#Ol{q6!Z6M9?^DvD< z&DWur(F_@H1Es7=%>svZe*qRV^-tFi(Qw?0pWUX=FxQU3*-Tj{!mJs*KU6&lCdC;0 zsQjIz2TJp|8WXwvP+u{I9x*;A!r_N&cURUDU6o#>p!7l#UkSr9>YWga3ElSeaEyje zYL2OJ(G6LKrRJ@pjma`jzL90F$!_J4P04tJ+ECHiCS_qx-fsp*riGdeEV&TdxB8)cxyfM!QaWQFp7H8;-;JmbssU>R z;|R{}3ON+K+c8fCpjF&7(2CjkYX^zit%)1xXNCe_4+Wze$tuIY=?TEDPO@@&wn<)H z$H?(R&;Ihxmri_rec2=bn(t1CoQh}A`N8kAeH6FG#qMUc=RvX(lTx)P9P(DUUD~dd zb}c7cGY&iHcBTo$G3pdJbOn_c+(~gFkQX>a7aF4k2|sss98Tix?>9F=qA0Roz1_2? zof&6b+TLI85DKnjdBEFY4_CXxwmtNrYdToU(1_=MR%hHHyFj{p3$zI?&O z?DiLaHWYlp{gyWL=N5q%@`k2pzuu`f4e#-|=Vk)_=jjklcDj4LW4D6MK!nZ+yN`WW zkPjiUx2tUoXGv0Y5X##E5%A`e*vLTZ8QR5&ky~@;4GEV&3f>A7pb6D(YUORA@--Zo zp1mc+@ld_9nu|DxWjqUg0UWLmcfQ;S?-9~ac6+3I2a$>6B~(^^r9X+HG?3WkIalq3 zfCjWzRrC8DG^_Eh!(Ie0RFYII)h9$9G7 zz$&SGs)K!_$c5IDKi0j^j`$0v;h9ONmi*+ zl(vxI=$R};{)?P~T1&GY0Aq|*ey(DW$#`A@IpynD1gW5S!~5-CpI-pq0l)DGsxb_* z*Tx=i=XvAd6t-UL0ay&JGtG|Ou}QwkT&`Fm`O_AAMm+Qh+2HqjnwT6aR=G~obL^G(_r}PD~sjS%#jXH zhYS$0hzh3vJKDsZ8kCKPe-#_Of^^F4v1xFgVXT=$MoJskKs+<+xMs=Wro4UHK=j{5i#RM((VXR6JB>0)-hYOnl=6jNN??sTG{zN^F>hf8 zBPa?E%%(>H($vI=Ii(1RBB>XFEz7^jjt7g2$u%P(ZikG|N1KW98NZp|R7jQ7O=+k- z?TWD>85?-Kt#f#MnZ+sd-45^8Oht^dCG_KtvpGt zAkEob4fu-R9Zn=)p0yr6IJLsS_7>$?2ec?-wNsYrh|40_ZWUwRNw%8i3j67kqDleO zt$ob3_d0&Ly1L8bk3DHTe&lp@!^)}U$LM(cc@Pi}VubKRwQv#V#D}Dimn!Rl3kx*^ RgdfyIhIdW$>U5l={s-zotz7^B diff --git a/web/app/vendor/phpmailer/examples/images/phpmailer_mini.png b/web/app/vendor/phpmailer/examples/images/phpmailer_mini.png deleted file mode 100644 index e6915f4317692a2591ef8c96ef74c50ea42a6fba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1842 zcmV-22hI42P)cS z;&&eArFvNZrNTx8&q9F_J$UfI*49=(Ti!Qre+`?5s;4?sCM5$wU@&NWeB92?PCr{_ zqSMw;@*%0($^*qB(m{j=BkJz%wlJixH1->VNhVX(7ay~-B2 zwY9a(GT)!}^m4J`HFtBgo^6lOPqq0lIW5kK*IX*LY$!P<2pCjXSI06L85v;~s4wmT(7E?RPes7OO8NtDdii%h! z{r&wcFwPX`%IgXXZ}X*q-+qpER$22FIHr~_b;lDwf`dJJ^oV6rQBlDKW2FljYF*Q} zuB~mj-;tGGvh)cLcIworcO0EOdD0*l(vP{`7Dg*JM7cIVHY>t|VRWsouCmI%e*Idh zR2l<@^wR~y8$amlC$;nCVvknA?)Lj*7ErAt}3cqzHk8tJyGgWB7u&^*VIVczs_7Ju*_MGuU zwwED8;lV&fI-zM`NMlW!qYBCX+*niOi_DJC>RB!U=)mkQ7{Td!6+C7qhOx{7+&2x`M1bJkHQ7-=P<+qZ9bb#)m8tFEs8Cr&CldT(zJA$|b6b?esR;v&LPnGVa!%2;6B zSVvwk6f+wb8ew8$;y_^NY&$zUa6-VYUcHJVLh_YFB7uJ|FE0WH!O7Cn(wjGL9zTAZ zkdS~f5fKr+y}e8@IJ|c48jeoa*4A*BRVo!STU%Sx)6?_v@?dBR7(Dj%^${>c0|zoR zH8sTxM#4UDT1&w25ik15SI3VZ2Z>B3BVcF&yfeo^A&G(^@jP*Haq!FpD<~+y4i+(K z@Y&JPar5R)WDX1rAm{>tyZ-+E#)6^eU}U3WoD8k3te{E)_UzfSCk$cu?Sp|ICJhm=f7Nx`5cU}&*}bw&JQ zJiOpydV2co*|VtCU{}QX7)+oSFJ82?v>^PM35NTM4hd}dw70iswpd9?3A#GM%+OrO zDt^>vfLNLS>@_%TMr1Vd|}HzJ60aBvVG_rWmVq8E^8TZKZQ3k=w3 zG4~I0c6R<$z#ugK)2B}{N||6-QF?lMkh2elHspfgFU$WY1cok+^$k-66AaxF{i?aS z`Ocj?=xnIEsi}zzhH;Bx=&@M1F>~Nw9!vq#Xf&vpn~!h++*H;U0W&XIQq^iT*TmJ; z)!W;fH!c;CFJv;ra)+HtKtKRKVlhB1fF~OoM@Pr~TZ~(PVwlY0 - - - - PHPMailer Examples - - -

PHPMailer code examplesPHPMailer logo

-

This folder contains a collection of examples of using PHPMailer.

-

About testing email sending

-

When working on email sending code you'll find yourself worrying about what might happen if all these test emails got sent to your mailing list. The solution is to use a fake mail server, one that acts just like the real thing, but just doesn't actually send anything out. Some offer web interfaces, feedback, logging, the ability to return specific error codes, all things that are useful for testing error handling, authentication etc. Here's a selection of mail testing tools you might like to try:

-
    -
  • FakeEmail, a Python-based fake mail server with a web interface.
  • -
  • smtp-sink, part of the Postfix mail server, so you probably already have this installed. This is used in the Travis-CI configuration to run PHPMailer's unit tests.
  • -
  • FakeSMTP, a Java desktop app with the ability to show an SMTP log and save messages to a folder.
  • -
  • smtp4dev, a dummy SMTP server for Windows.
  • -
  • fakesendmail.sh, part of PHPMailer's test setup, this is a shell script that emulates sendmail for testing 'mail' or 'sendmail' methods in PHPMailer.
  • -
  • msglint, not a mail server, the IETF's MIME structure analyser checks the formatting of your messages.
  • -
-
-

Security note

-

Before running these examples you'll need to rename them with '.php' extensions. They are supplied as '.phps' files which will usually be displayed with syntax highlighting by PHP instead of running them. This prevents potential security issues with running potential spam-gateway code if you happen to deploy these code examples on a live site - please don't do that! Similarly, don't leave your passwords in these files as they will be visible to the world!

-
-

code_generator.phps

-

This script is a simple code generator - fill in the form and hit submit, and it will use when you entered to email you a message, and will also generate PHP code using your settings that you can copy and paste to use in your own apps. If you need to get going quickly, this is probably the best place to start.

-

mail.phps

-

This script is a basic example which creates an email message from an external HTML file, creates a plain text body, sets various addresses, adds an attachment and sends the message. It uses PHP's built-in mail() function which is the simplest to use, but relies on the presence of a local mail server, something which is not usually available on Windows. If you find yourself in that sitution, either install a local mail server, or use a remote one and send using SMTP instead.

-

exceptions.phps

-

The same as the mail example, but shows how to use PHPMailer's optional exceptions for error handling.

-

smtp.phps

-

A simple example sending using SMTP with authentication.

-

smtp_no_auth.phps

-

A simple example sending using SMTP without authentication.

-

sendmail.phps

-

A simple example using sendmail. Sendmail is a program (usually found on Linux/BSD, OS X and other UNIX-alikes) that can be used to submit messages to a local mail server without a lengthy SMTP conversation. It's probably the fastest sending mechanism, but lacks some error reporting features. There are sendmail emulators for most popular mail servers including postfix, qmail, exim etc.

-

gmail.phps

-

Submitting email via Google's Gmail service is a popular use of PHPMailer. It's much the same as normal SMTP sending, just with some specific settings, namely using TLS encryption, authentication is enabled, and it connects to the SMTP submission port 587 on the smtp.gmail.com host. This example does all that.

-

pop_before_smtp.phps

-

Before effective SMTP authentication mechanisms were available, it was common for ISPs to use POP-before-SMTP authentication. As it implies, you authenticate using the POP3 protocol (an older protocol now mostly replaced by the far superior IMAP), and then the SMTP server will allow send access from your IP address for a short while, usually 5-15 minutes. PHPMailer includes a POP3 protocol client, so it can carry out this sequence - it's just like a normal SMTP conversation (without authentication), but connects via POP first.

-

mailing_list.phps

-

This is a somewhat naïve example of sending similar emails to a list of different addresses. It sets up a PHPMailer instance using SMTP, then connects to a MySQL database to retrieve a list of recipients. The code loops over this list, sending email to each person using their info and marks them as sent in the database. It makes use of SMTP keepalive which saves reconnecting and re-authenticating between each message.

-
-

Most of these examples use the 'example.com' domain. This domain is reserved by IANA for illustrative purposes, as documented in RFC 2606. Don't use made-up domains like 'mydomain.com' or 'somedomain.com' in examples as someone, somewhere, probably owns them!

- - diff --git a/web/app/vendor/phpmailer/examples/mail.phps b/web/app/vendor/phpmailer/examples/mail.phps deleted file mode 100644 index f12dbaf..0000000 --- a/web/app/vendor/phpmailer/examples/mail.phps +++ /dev/null @@ -1,37 +0,0 @@ - - - - - PHPMailer - mail() test - - -setFrom('from@example.com', 'First Last'); -//Set an alternative reply-to address -$mail->addReplyTo('replyto@example.com', 'First Last'); -//Set who the message is to be sent to -$mail->addAddress('whoto@example.com', 'John Doe'); -//Set the subject line -$mail->Subject = 'PHPMailer mail() test'; -//Read an HTML message body from an external file, convert referenced images to embedded, -//convert HTML into a basic plain-text alternative body -$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); -//Replace the plain text body with one created manually -$mail->AltBody = 'This is a plain-text message body'; -//Attach an image file -$mail->addAttachment('images/phpmailer_mini.png'); - -//send the message, check for errors -if (!$mail->send()) { - echo "Mailer Error: " . $mail->ErrorInfo; -} else { - echo "Message sent!"; -} -?> - - diff --git a/web/app/vendor/phpmailer/examples/mailing_list.phps b/web/app/vendor/phpmailer/examples/mailing_list.phps deleted file mode 100644 index 070e82d..0000000 --- a/web/app/vendor/phpmailer/examples/mailing_list.phps +++ /dev/null @@ -1,55 +0,0 @@ -isSMTP(); -$mail->Host = 'smtp.example.com'; -$mail->SMTPAuth = true; -$mail->SMTPKeepAlive = true; // SMTP connection will not close after each email sent, reduces SMTP overhead -$mail->Port = 25; -$mail->Username = 'yourname@example.com'; -$mail->Password = 'yourpassword'; -$mail->setFrom('list@example.com', 'List manager'); -$mail->addReplyTo('list@example.com', 'List manager'); - -$mail->Subject = "PHPMailer Simple database mailing list test"; - -//Same body for all messages, so set this before the sending loop -//If you generate a different body for each recipient (e.g. you're using a templating system), -//set it inside the loop -$mail->msgHTML($body); -//msgHTML also sets AltBody, so if you want a custom one, set it afterwards -$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; - -//Connect to the database and select the recipients from your mailing list that have not yet been sent to -//You'll need to alter this to match your database -$mysql = mysql_connect('localhost', 'username', 'password'); -mysql_select_db('mydb', $mysql); -$result = mysql_query("SELECT full_name, email, photo FROM mailinglist WHERE sent = false", $mysql); - -while ($row = mysql_fetch_array($result)) { - $mail->addAddress($row['email'], $row['full_name']); - $mail->addStringAttachment($row['photo'], 'YourPhoto.jpg'); //Assumes the image data is stored in the DB - - if (!$mail->send()) { - echo "Mailer Error (" . str_replace("@", "@", $row["email"]) . ') ' . $mail->ErrorInfo . '
'; - break; //Abandon sending - } else { - echo "Message sent to :" . $row['full_name'] . ' (' . str_replace("@", "@", $row['email']) . ')
'; - //Mark it as sent in the DB - mysql_query( - "UPDATE mailinglist SET sent = true WHERE email = '" . mysql_real_escape_string($row['email'], $mysql) . "'" - ); - } - // Clear all addresses and attachments for next loop - $mail->clearAddresses(); - $mail->clearAttachments(); -} diff --git a/web/app/vendor/phpmailer/examples/pop_before_smtp.phps b/web/app/vendor/phpmailer/examples/pop_before_smtp.phps deleted file mode 100644 index 44a7d42..0000000 --- a/web/app/vendor/phpmailer/examples/pop_before_smtp.phps +++ /dev/null @@ -1,60 +0,0 @@ - - - - - PHPMailer - POP-before-SMTP test - - -isSMTP(); - //Enable SMTP debugging - // 0 = off (for production use) - // 1 = client messages - // 2 = client and server messages - $mail->SMTPDebug = 2; - //Ask for HTML-friendly debug output - $mail->Debugoutput = 'html'; - //Set the hostname of the mail server - $mail->Host = "mail.example.com"; - //Set the SMTP port number - likely to be 25, 465 or 587 - $mail->Port = 25; - //Whether to use SMTP authentication - $mail->SMTPAuth = false; - //Set who the message is to be sent from - $mail->setFrom('from@example.com', 'First Last'); - //Set an alternative reply-to address - $mail->addReplyTo('replyto@example.com', 'First Last'); - //Set who the message is to be sent to - $mail->addAddress('whoto@example.com', 'John Doe'); - //Set the subject line - $mail->Subject = 'PHPMailer POP-before-SMTP test'; - //Read an HTML message body from an external file, convert referenced images to embedded, - //and convert the HTML into a basic plain-text alternative body - $mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); - //Replace the plain text body with one created manually - $mail->AltBody = 'This is a plain-text message body'; - //Attach an image file - $mail->addAttachment('images/phpmailer_mini.png'); - //send the message - //Note that we don't need check the response from this because it will throw an exception if it has trouble - $mail->send(); - echo "Message sent!"; -} catch (phpmailerException $e) { - echo $e->errorMessage(); //Pretty error messages from PHPMailer -} catch (Exception $e) { - echo $e->getMessage(); //Boring error messages from anything else! -} -?> - - diff --git a/web/app/vendor/phpmailer/examples/scripts/XRegExp.js b/web/app/vendor/phpmailer/examples/scripts/XRegExp.js deleted file mode 100644 index ebdb9c9..0000000 --- a/web/app/vendor/phpmailer/examples/scripts/XRegExp.js +++ /dev/null @@ -1,664 +0,0 @@ -// XRegExp 1.5.1 -// (c) 2007-2012 Steven Levithan -// MIT License -// -// Provides an augmented, extensible, cross-browser implementation of regular expressions, -// including support for additional syntax, flags, and methods - -var XRegExp; - -if (XRegExp) { - // Avoid running twice, since that would break references to native globals - throw Error("can't load XRegExp twice in the same frame"); -} - -// Run within an anonymous function to protect variables and avoid new globals -(function (undefined) { - - //--------------------------------- - // Constructor - //--------------------------------- - - // Accepts a pattern and flags; returns a new, extended `RegExp` object. Differs from a native - // regular expression in that additional syntax and flags are supported and cross-browser - // syntax inconsistencies are ameliorated. `XRegExp(/regex/)` clones an existing regex and - // converts to type XRegExp - XRegExp = function (pattern, flags) { - var output = [], - currScope = XRegExp.OUTSIDE_CLASS, - pos = 0, - context, tokenResult, match, chr, regex; - - if (XRegExp.isRegExp(pattern)) { - if (flags !== undefined) - throw TypeError("can't supply flags when constructing one RegExp from another"); - return clone(pattern); - } - // Tokens become part of the regex construction process, so protect against infinite - // recursion when an XRegExp is constructed within a token handler or trigger - if (isInsideConstructor) - throw Error("can't call the XRegExp constructor within token definition functions"); - - flags = flags || ""; - context = { // `this` object for custom tokens - hasNamedCapture: false, - captureNames: [], - hasFlag: function (flag) {return flags.indexOf(flag) > -1;}, - setFlag: function (flag) {flags += flag;} - }; - - while (pos < pattern.length) { - // Check for custom tokens at the current position - tokenResult = runTokens(pattern, pos, currScope, context); - - if (tokenResult) { - output.push(tokenResult.output); - pos += (tokenResult.match[0].length || 1); - } else { - // Check for native multicharacter metasequences (excluding character classes) at - // the current position - if (match = nativ.exec.call(nativeTokens[currScope], pattern.slice(pos))) { - output.push(match[0]); - pos += match[0].length; - } else { - chr = pattern.charAt(pos); - if (chr === "[") - currScope = XRegExp.INSIDE_CLASS; - else if (chr === "]") - currScope = XRegExp.OUTSIDE_CLASS; - // Advance position one character - output.push(chr); - pos++; - } - } - } - - regex = RegExp(output.join(""), nativ.replace.call(flags, flagClip, "")); - regex._xregexp = { - source: pattern, - captureNames: context.hasNamedCapture ? context.captureNames : null - }; - return regex; - }; - - - //--------------------------------- - // Public properties - //--------------------------------- - - XRegExp.version = "1.5.1"; - - // Token scope bitflags - XRegExp.INSIDE_CLASS = 1; - XRegExp.OUTSIDE_CLASS = 2; - - - //--------------------------------- - // Private variables - //--------------------------------- - - var replacementToken = /\$(?:(\d\d?|[$&`'])|{([$\w]+)})/g, - flagClip = /[^gimy]+|([\s\S])(?=[\s\S]*\1)/g, // Nonnative and duplicate flags - quantifier = /^(?:[?*+]|{\d+(?:,\d*)?})\??/, - isInsideConstructor = false, - tokens = [], - // Copy native globals for reference ("native" is an ES3 reserved keyword) - nativ = { - exec: RegExp.prototype.exec, - test: RegExp.prototype.test, - match: String.prototype.match, - replace: String.prototype.replace, - split: String.prototype.split - }, - compliantExecNpcg = nativ.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups - compliantLastIndexIncrement = function () { - var x = /^/g; - nativ.test.call(x, ""); - return !x.lastIndex; - }(), - hasNativeY = RegExp.prototype.sticky !== undefined, - nativeTokens = {}; - - // `nativeTokens` match native multicharacter metasequences only (including deprecated octals, - // excluding character classes) - nativeTokens[XRegExp.INSIDE_CLASS] = /^(?:\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S]))/; - nativeTokens[XRegExp.OUTSIDE_CLASS] = /^(?:\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|c[A-Za-z]|[\s\S])|\(\?[:=!]|[?*+]\?|{\d+(?:,\d*)?}\??)/; - - - //--------------------------------- - // Public methods - //--------------------------------- - - // Lets you extend or change XRegExp syntax and create custom flags. This is used internally by - // the XRegExp library and can be used to create XRegExp plugins. This function is intended for - // users with advanced knowledge of JavaScript's regular expression syntax and behavior. It can - // be disabled by `XRegExp.freezeTokens` - XRegExp.addToken = function (regex, handler, scope, trigger) { - tokens.push({ - pattern: clone(regex, "g" + (hasNativeY ? "y" : "")), - handler: handler, - scope: scope || XRegExp.OUTSIDE_CLASS, - trigger: trigger || null - }); - }; - - // Accepts a pattern and flags; returns an extended `RegExp` object. If the pattern and flag - // combination has previously been cached, the cached copy is returned; otherwise the newly - // created regex is cached - XRegExp.cache = function (pattern, flags) { - var key = pattern + "/" + (flags || ""); - return XRegExp.cache[key] || (XRegExp.cache[key] = XRegExp(pattern, flags)); - }; - - // Accepts a `RegExp` instance; returns a copy with the `/g` flag set. The copy has a fresh - // `lastIndex` (set to zero). If you want to copy a regex without forcing the `global` - // property, use `XRegExp(regex)`. Do not use `RegExp(regex)` because it will not preserve - // special properties required for named capture - XRegExp.copyAsGlobal = function (regex) { - return clone(regex, "g"); - }; - - // Accepts a string; returns the string with regex metacharacters escaped. The returned string - // can safely be used at any point within a regex to match the provided literal string. Escaped - // characters are [ ] { } ( ) * + ? - . , \ ^ $ | # and whitespace - XRegExp.escape = function (str) { - return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); - }; - - // Accepts a string to search, regex to search with, position to start the search within the - // string (default: 0), and an optional Boolean indicating whether matches must start at-or- - // after the position or at the specified position only. This function ignores the `lastIndex` - // of the provided regex in its own handling, but updates the property for compatibility - XRegExp.execAt = function (str, regex, pos, anchored) { - var r2 = clone(regex, "g" + ((anchored && hasNativeY) ? "y" : "")), - match; - r2.lastIndex = pos = pos || 0; - match = r2.exec(str); // Run the altered `exec` (required for `lastIndex` fix, etc.) - if (anchored && match && match.index !== pos) - match = null; - if (regex.global) - regex.lastIndex = match ? r2.lastIndex : 0; - return match; - }; - - // Breaks the unrestorable link to XRegExp's private list of tokens, thereby preventing - // syntax and flag changes. Should be run after XRegExp and any plugins are loaded - XRegExp.freezeTokens = function () { - XRegExp.addToken = function () { - throw Error("can't run addToken after freezeTokens"); - }; - }; - - // Accepts any value; returns a Boolean indicating whether the argument is a `RegExp` object. - // Note that this is also `true` for regex literals and regexes created by the `XRegExp` - // constructor. This works correctly for variables created in another frame, when `instanceof` - // and `constructor` checks would fail to work as intended - XRegExp.isRegExp = function (o) { - return Object.prototype.toString.call(o) === "[object RegExp]"; - }; - - // Executes `callback` once per match within `str`. Provides a simpler and cleaner way to - // iterate over regex matches compared to the traditional approaches of subverting - // `String.prototype.replace` or repeatedly calling `exec` within a `while` loop - XRegExp.iterate = function (str, regex, callback, context) { - var r2 = clone(regex, "g"), - i = -1, match; - while (match = r2.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.) - if (regex.global) - regex.lastIndex = r2.lastIndex; // Doing this to follow expectations if `lastIndex` is checked within `callback` - callback.call(context, match, ++i, str, regex); - if (r2.lastIndex === match.index) - r2.lastIndex++; - } - if (regex.global) - regex.lastIndex = 0; - }; - - // Accepts a string and an array of regexes; returns the result of using each successive regex - // to search within the matches of the previous regex. The array of regexes can also contain - // objects with `regex` and `backref` properties, in which case the named or numbered back- - // references specified are passed forward to the next regex or returned. E.g.: - // var xregexpImgFileNames = XRegExp.matchChain(html, [ - // {regex: /]+)>/i, backref: 1}, // tag attributes - // {regex: XRegExp('(?ix) \\s src=" (? [^"]+ )'), backref: "src"}, // src attribute values - // {regex: XRegExp("^http://xregexp\\.com(/[^#?]+)", "i"), backref: 1}, // xregexp.com paths - // /[^\/]+$/ // filenames (strip directory paths) - // ]); - XRegExp.matchChain = function (str, chain) { - return function recurseChain (values, level) { - var item = chain[level].regex ? chain[level] : {regex: chain[level]}, - regex = clone(item.regex, "g"), - matches = [], i; - for (i = 0; i < values.length; i++) { - XRegExp.iterate(values[i], regex, function (match) { - matches.push(item.backref ? (match[item.backref] || "") : match[0]); - }); - } - return ((level === chain.length - 1) || !matches.length) ? - matches : recurseChain(matches, level + 1); - }([str], 0); - }; - - - //--------------------------------- - // New RegExp prototype methods - //--------------------------------- - - // Accepts a context object and arguments array; returns the result of calling `exec` with the - // first value in the arguments array. the context is ignored but is accepted for congruity - // with `Function.prototype.apply` - RegExp.prototype.apply = function (context, args) { - return this.exec(args[0]); - }; - - // Accepts a context object and string; returns the result of calling `exec` with the provided - // string. the context is ignored but is accepted for congruity with `Function.prototype.call` - RegExp.prototype.call = function (context, str) { - return this.exec(str); - }; - - - //--------------------------------- - // Overriden native methods - //--------------------------------- - - // Adds named capture support (with backreferences returned as `result.name`), and fixes two - // cross-browser issues per ES3: - // - Captured values for nonparticipating capturing groups should be returned as `undefined`, - // rather than the empty string. - // - `lastIndex` should not be incremented after zero-length matches. - RegExp.prototype.exec = function (str) { - var match, name, r2, origLastIndex; - if (!this.global) - origLastIndex = this.lastIndex; - match = nativ.exec.apply(this, arguments); - if (match) { - // Fix browsers whose `exec` methods don't consistently return `undefined` for - // nonparticipating capturing groups - if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) { - r2 = RegExp(this.source, nativ.replace.call(getNativeFlags(this), "g", "")); - // Using `str.slice(match.index)` rather than `match[0]` in case lookahead allowed - // matching due to characters outside the match - nativ.replace.call((str + "").slice(match.index), r2, function () { - for (var i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) - match[i] = undefined; - } - }); - } - // Attach named capture properties - if (this._xregexp && this._xregexp.captureNames) { - for (var i = 1; i < match.length; i++) { - name = this._xregexp.captureNames[i - 1]; - if (name) - match[name] = match[i]; - } - } - // Fix browsers that increment `lastIndex` after zero-length matches - if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) - this.lastIndex--; - } - if (!this.global) - this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) - return match; - }; - - // Fix browser bugs in native method - RegExp.prototype.test = function (str) { - // Use the native `exec` to skip some processing overhead, even though the altered - // `exec` would take care of the `lastIndex` fixes - var match, origLastIndex; - if (!this.global) - origLastIndex = this.lastIndex; - match = nativ.exec.call(this, str); - // Fix browsers that increment `lastIndex` after zero-length matches - if (match && !compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) - this.lastIndex--; - if (!this.global) - this.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) - return !!match; - }; - - // Adds named capture support and fixes browser bugs in native method - String.prototype.match = function (regex) { - if (!XRegExp.isRegExp(regex)) - regex = RegExp(regex); // Native `RegExp` - if (regex.global) { - var result = nativ.match.apply(this, arguments); - regex.lastIndex = 0; // Fix IE bug - return result; - } - return regex.exec(this); // Run the altered `exec` - }; - - // Adds support for `${n}` tokens for named and numbered backreferences in replacement text, - // and provides named backreferences to replacement functions as `arguments[0].name`. Also - // fixes cross-browser differences in replacement text syntax when performing a replacement - // using a nonregex search value, and the value of replacement regexes' `lastIndex` property - // during replacement iterations. Note that this doesn't support SpiderMonkey's proprietary - // third (`flags`) parameter - String.prototype.replace = function (search, replacement) { - var isRegex = XRegExp.isRegExp(search), - captureNames, result, str, origLastIndex; - - // There are too many combinations of search/replacement types/values and browser bugs that - // preclude passing to native `replace`, so don't try - //if (...) - // return nativ.replace.apply(this, arguments); - - if (isRegex) { - if (search._xregexp) - captureNames = search._xregexp.captureNames; // Array or `null` - if (!search.global) - origLastIndex = search.lastIndex; - } else { - search = search + ""; // Type conversion - } - - if (Object.prototype.toString.call(replacement) === "[object Function]") { - result = nativ.replace.call(this + "", search, function () { - if (captureNames) { - // Change the `arguments[0]` string primitive to a String object which can store properties - arguments[0] = new String(arguments[0]); - // Store named backreferences on `arguments[0]` - for (var i = 0; i < captureNames.length; i++) { - if (captureNames[i]) - arguments[0][captureNames[i]] = arguments[i + 1]; - } - } - // Update `lastIndex` before calling `replacement` (fix browsers) - if (isRegex && search.global) - search.lastIndex = arguments[arguments.length - 2] + arguments[0].length; - return replacement.apply(null, arguments); - }); - } else { - str = this + ""; // Type conversion, so `args[args.length - 1]` will be a string (given nonstring `this`) - result = nativ.replace.call(str, search, function () { - var args = arguments; // Keep this function's `arguments` available through closure - return nativ.replace.call(replacement + "", replacementToken, function ($0, $1, $2) { - // Numbered backreference (without delimiters) or special variable - if ($1) { - switch ($1) { - case "$": return "$"; - case "&": return args[0]; - case "`": return args[args.length - 1].slice(0, args[args.length - 2]); - case "'": return args[args.length - 1].slice(args[args.length - 2] + args[0].length); - // Numbered backreference - default: - // What does "$10" mean? - // - Backreference 10, if 10 or more capturing groups exist - // - Backreference 1 followed by "0", if 1-9 capturing groups exist - // - Otherwise, it's the string "$10" - // Also note: - // - Backreferences cannot be more than two digits (enforced by `replacementToken`) - // - "$01" is equivalent to "$1" if a capturing group exists, otherwise it's the string "$01" - // - There is no "$0" token ("$&" is the entire match) - var literalNumbers = ""; - $1 = +$1; // Type conversion; drop leading zero - if (!$1) // `$1` was "0" or "00" - return $0; - while ($1 > args.length - 3) { - literalNumbers = String.prototype.slice.call($1, -1) + literalNumbers; - $1 = Math.floor($1 / 10); // Drop the last digit - } - return ($1 ? args[$1] || "" : "$") + literalNumbers; - } - // Named backreference or delimited numbered backreference - } else { - // What does "${n}" mean? - // - Backreference to numbered capture n. Two differences from "$n": - // - n can be more than two digits - // - Backreference 0 is allowed, and is the entire match - // - Backreference to named capture n, if it exists and is not a number overridden by numbered capture - // - Otherwise, it's the string "${n}" - var n = +$2; // Type conversion; drop leading zeros - if (n <= args.length - 3) - return args[n]; - n = captureNames ? indexOf(captureNames, $2) : -1; - return n > -1 ? args[n + 1] : $0; - } - }); - }); - } - - if (isRegex) { - if (search.global) - search.lastIndex = 0; // Fix IE, Safari bug (last tested IE 9.0.5, Safari 5.1.2 on Windows) - else - search.lastIndex = origLastIndex; // Fix IE, Opera bug (last tested IE 9.0.5, Opera 11.61 on Windows) - } - - return result; - }; - - // A consistent cross-browser, ES3 compliant `split` - String.prototype.split = function (s /* separator */, limit) { - // If separator `s` is not a regex, use the native `split` - if (!XRegExp.isRegExp(s)) - return nativ.split.apply(this, arguments); - - var str = this + "", // Type conversion - output = [], - lastLastIndex = 0, - match, lastLength; - - // Behavior for `limit`: if it's... - // - `undefined`: No limit - // - `NaN` or zero: Return an empty array - // - A positive number: Use `Math.floor(limit)` - // - A negative number: No limit - // - Other: Type-convert, then use the above rules - if (limit === undefined || +limit < 0) { - limit = Infinity; - } else { - limit = Math.floor(+limit); - if (!limit) - return []; - } - - // This is required if not `s.global`, and it avoids needing to set `s.lastIndex` to zero - // and restore it to its original value when we're done using the regex - s = XRegExp.copyAsGlobal(s); - - while (match = s.exec(str)) { // Run the altered `exec` (required for `lastIndex` fix, etc.) - if (s.lastIndex > lastLastIndex) { - output.push(str.slice(lastLastIndex, match.index)); - - if (match.length > 1 && match.index < str.length) - Array.prototype.push.apply(output, match.slice(1)); - - lastLength = match[0].length; - lastLastIndex = s.lastIndex; - - if (output.length >= limit) - break; - } - - if (s.lastIndex === match.index) - s.lastIndex++; - } - - if (lastLastIndex === str.length) { - if (!nativ.test.call(s, "") || lastLength) - output.push(""); - } else { - output.push(str.slice(lastLastIndex)); - } - - return output.length > limit ? output.slice(0, limit) : output; - }; - - - //--------------------------------- - // Private helper functions - //--------------------------------- - - // Supporting function for `XRegExp`, `XRegExp.copyAsGlobal`, etc. Returns a copy of a `RegExp` - // instance with a fresh `lastIndex` (set to zero), preserving properties required for named - // capture. Also allows adding new flags in the process of copying the regex - function clone (regex, additionalFlags) { - if (!XRegExp.isRegExp(regex)) - throw TypeError("type RegExp expected"); - var x = regex._xregexp; - regex = XRegExp(regex.source, getNativeFlags(regex) + (additionalFlags || "")); - if (x) { - regex._xregexp = { - source: x.source, - captureNames: x.captureNames ? x.captureNames.slice(0) : null - }; - } - return regex; - } - - function getNativeFlags (regex) { - return (regex.global ? "g" : "") + - (regex.ignoreCase ? "i" : "") + - (regex.multiline ? "m" : "") + - (regex.extended ? "x" : "") + // Proposed for ES4; included in AS3 - (regex.sticky ? "y" : ""); - } - - function runTokens (pattern, index, scope, context) { - var i = tokens.length, - result, match, t; - // Protect against constructing XRegExps within token handler and trigger functions - isInsideConstructor = true; - // Must reset `isInsideConstructor`, even if a `trigger` or `handler` throws - try { - while (i--) { // Run in reverse order - t = tokens[i]; - if ((scope & t.scope) && (!t.trigger || t.trigger.call(context))) { - t.pattern.lastIndex = index; - match = t.pattern.exec(pattern); // Running the altered `exec` here allows use of named backreferences, etc. - if (match && match.index === index) { - result = { - output: t.handler.call(context, match, scope), - match: match - }; - break; - } - } - } - } catch (err) { - throw err; - } finally { - isInsideConstructor = false; - } - return result; - } - - function indexOf (array, item, from) { - if (Array.prototype.indexOf) // Use the native array method if available - return array.indexOf(item, from); - for (var i = from || 0; i < array.length; i++) { - if (array[i] === item) - return i; - } - return -1; - } - - - //--------------------------------- - // Built-in tokens - //--------------------------------- - - // Augment XRegExp's regular expression syntax and flags. Note that when adding tokens, the - // third (`scope`) argument defaults to `XRegExp.OUTSIDE_CLASS` - - // Comment pattern: (?# ) - XRegExp.addToken( - /\(\?#[^)]*\)/, - function (match) { - // Keep tokens separated unless the following token is a quantifier - return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)"; - } - ); - - // Capturing group (match the opening parenthesis only). - // Required for support of named capturing groups - XRegExp.addToken( - /\((?!\?)/, - function () { - this.captureNames.push(null); - return "("; - } - ); - - // Named capturing group (match the opening delimiter only): (? - XRegExp.addToken( - /\(\?<([$\w]+)>/, - function (match) { - this.captureNames.push(match[1]); - this.hasNamedCapture = true; - return "("; - } - ); - - // Named backreference: \k - XRegExp.addToken( - /\\k<([\w$]+)>/, - function (match) { - var index = indexOf(this.captureNames, match[1]); - // Keep backreferences separate from subsequent literal numbers. Preserve back- - // references to named groups that are undefined at this point as literal strings - return index > -1 ? - "\\" + (index + 1) + (isNaN(match.input.charAt(match.index + match[0].length)) ? "" : "(?:)") : - match[0]; - } - ); - - // Empty character class: [] or [^] - XRegExp.addToken( - /\[\^?]/, - function (match) { - // For cross-browser compatibility with ES3, convert [] to \b\B and [^] to [\s\S]. - // (?!) should work like \b\B, but is unreliable in Firefox - return match[0] === "[]" ? "\\b\\B" : "[\\s\\S]"; - } - ); - - // Mode modifier at the start of the pattern only, with any combination of flags imsx: (?imsx) - // Does not support x(?i), (?-i), (?i-m), (?i: ), (?i)(?m), etc. - XRegExp.addToken( - /^\(\?([imsx]+)\)/, - function (match) { - this.setFlag(match[1]); - return ""; - } - ); - - // Whitespace and comments, in free-spacing (aka extended) mode only - XRegExp.addToken( - /(?:\s+|#.*)+/, - function (match) { - // Keep tokens separated unless the following token is a quantifier - return nativ.test.call(quantifier, match.input.slice(match.index + match[0].length)) ? "" : "(?:)"; - }, - XRegExp.OUTSIDE_CLASS, - function () {return this.hasFlag("x");} - ); - - // Dot, in dotall (aka singleline) mode only - XRegExp.addToken( - /\./, - function () {return "[\\s\\S]";}, - XRegExp.OUTSIDE_CLASS, - function () {return this.hasFlag("s");} - ); - - - //--------------------------------- - // Backward compatibility - //--------------------------------- - - // Uncomment the following block for compatibility with XRegExp 1.0-1.2: - /* - XRegExp.matchWithinChain = XRegExp.matchChain; - RegExp.prototype.addFlags = function (s) {return clone(this, s);}; - RegExp.prototype.execAll = function (s) {var r = []; XRegExp.iterate(s, this, function (m) {r.push(m);}); return r;}; - RegExp.prototype.forEachExec = function (s, f, c) {return XRegExp.iterate(s, this, f, c);}; - RegExp.prototype.validate = function (s) {var r = RegExp("^(?:" + this.source + ")$(?!\\s)", getNativeFlags(this)); if (this.global) this.lastIndex = 0; return s.search(r) === 0;}; - */ - -})(); - diff --git a/web/app/vendor/phpmailer/examples/scripts/shAutoloader.js b/web/app/vendor/phpmailer/examples/scripts/shAutoloader.js deleted file mode 100644 index 9f5942e..0000000 --- a/web/app/vendor/phpmailer/examples/scripts/shAutoloader.js +++ /dev/null @@ -1,122 +0,0 @@ -(function() { - -var sh = SyntaxHighlighter; - -/** - * Provides functionality to dynamically load only the brushes that a needed to render the current page. - * - * There are two syntaxes that autoload understands. For example: - * - * SyntaxHighlighter.autoloader( - * [ 'applescript', 'Scripts/shBrushAppleScript.js' ], - * [ 'actionscript3', 'as3', 'Scripts/shBrushAS3.js' ] - * ); - * - * or a more easily comprehendable one: - * - * SyntaxHighlighter.autoloader( - * 'applescript Scripts/shBrushAppleScript.js', - * 'actionscript3 as3 Scripts/shBrushAS3.js' - * ); - */ -sh.autoloader = function() -{ - var list = arguments, - elements = sh.findElements(), - brushes = {}, - scripts = {}, - all = SyntaxHighlighter.all, - allCalled = false, - allParams = null, - i - ; - - SyntaxHighlighter.all = function(params) - { - allParams = params; - allCalled = true; - }; - - function addBrush(aliases, url) - { - for (var i = 0; i < aliases.length; i++) - brushes[aliases[i]] = url; - }; - - function getAliases(item) - { - return item.pop - ? item - : item.split(/\s+/) - ; - } - - // create table of aliases and script urls - for (i = 0; i < list.length; i++) - { - var aliases = getAliases(list[i]), - url = aliases.pop() - ; - - addBrush(aliases, url); - } - - // dynamically add