From f621076f91f8dc8b8ac3f9d274505987c1c0b7b4 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 21 Mar 2021 16:32:46 -0700 Subject: [PATCH] Updated from JCenter to Maven Central. Updated dependencies. --- .circleci/config.yml | 4 +- .gitignore | 39 +- .travis.yml | 4 +- README.md | 11 +- build.gradle.kts | 183 +-- .../-akismet-comment/-akismet-comment.html | 44 + .../-companion/-a-d-m-i-n_-r-o-l-e.html | 38 + .../-t-y-p-e_-b-l-o-g_-p-o-s-t.html | 38 + .../-companion/-t-y-p-e_-c-o-m-m-e-n-t.html | 38 + .../-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html | 38 + .../-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html | 38 + .../-companion/-t-y-p-e_-m-e-s-s-a-g-e.html | 38 + .../-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html | 38 + .../-companion/-t-y-p-e_-r-e-p-l-y.html | 38 + .../-companion/-t-y-p-e_-s-i-g-n-u-p.html | 38 + .../-t-y-p-e_-t-r-a-c-k-b-a-c-k.html | 38 + .../-companion/-t-y-p-e_-t-w-e-e-t.html | 38 + .../-akismet-comment/-companion/index.html | 183 +++ .../-akismet-comment/author-email.html | 38 + .../-akismet-comment/author-url.html | 38 + .../-akismet-comment/author.html | 38 + .../-akismet-comment/blog-charset.html | 38 + .../-akismet-comment/blog-lang.html | 38 + .../-akismet-comment/content.html | 38 + .../-akismet-comment/date-gmt.html | 38 + .../-akismet-comment/equals.html | 38 + .../-akismet-comment/hash-code.html | 38 + .../-akismet-comment/index.html | 382 +++++ .../-akismet-comment/is-test.html | 38 + .../-akismet-comment/permalink.html | 38 + .../-akismet-comment/post-modified-gmt.html | 38 + .../-akismet-comment/recheck-reason.html | 38 + .../-akismet-comment/referrer.html | 38 + .../-akismet-comment/server-env.html | 38 + .../-akismet-comment/to-json.html | 38 + .../-akismet-comment/to-string.html | 38 + .../-akismet-comment/type.html | 38 + .../-akismet-comment/user-agent.html | 38 + .../-akismet-comment/user-ip.html | 38 + .../-akismet-comment/user-role.html | 38 + .../-akismet/-akismet.html | 44 + .../-akismet/-companion/date-to-gmt.html | 44 + .../-akismet/-companion/index.html | 80 ++ .../-akismet/-companion/json-comment.html | 38 + .../-akismet/app-user-agent.html | 38 + .../-akismet/blog.html | 38 + .../-akismet/check-comment.html | 38 + .../-akismet/debug-help.html | 38 + .../-akismet/error-message.html | 38 + .../-akismet/execute-method.html | 38 + .../-akismet/http-status-code.html | 38 + .../-akismet/index.html | 321 +++++ .../-akismet/is-discard.html | 38 + .../-akismet/is-verified-key.html | 38 + .../-akismet/logger.html | 38 + .../-akismet/pro-tip.html | 38 + .../-akismet/reset.html | 38 + .../-akismet/response.html | 38 + .../-akismet/submit-ham.html | 38 + .../-akismet/submit-spam.html | 38 + .../-akismet/verify-key.html | 38 + .../net.thauvin.erik.akismet/index.html | 73 + docs/akismet-kotlin/package-list | 64 + docs/images/anchor-copy-button.svg | 4 + docs/images/arrow_down.svg | 3 + docs/images/copy-icon.svg | 3 + docs/images/copy-successful-icon.svg | 3 + docs/images/docs_logo.svg | 7 + docs/images/footer-go-to-link.svg | 3 + docs/images/go-to-top-icon.svg | 4 + docs/images/logo-icon.svg | 3 + docs/index.html | 47 + docs/navigation.html | 13 + docs/scripts/clipboard.js | 52 + docs/scripts/main.js | 67 + docs/scripts/navigation-loader.js | 64 + docs/scripts/navigation-pane.json | 1 + docs/scripts/pages.json | 1 + docs/scripts/platform-content-handler.js | 290 ++++ docs/scripts/sourceset_dependencies.js | 1 + docs/styles/jetbrains-mono.css | 17 + docs/styles/logo-styles.css | 3 + docs/styles/main.css | 113 ++ docs/styles/style.css | 1229 +++++++++++++++++ examples/build.gradle.kts | 8 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- examples/gradlew | 0 pom.xml | 80 +- version.properties | 6 +- 89 files changed, 5161 insertions(+), 201 deletions(-) create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/blog.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/error-message.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/index.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/logger.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/reset.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/response.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html create mode 100644 docs/akismet-kotlin/net.thauvin.erik.akismet/index.html create mode 100644 docs/akismet-kotlin/package-list create mode 100644 docs/images/anchor-copy-button.svg create mode 100644 docs/images/arrow_down.svg create mode 100644 docs/images/copy-icon.svg create mode 100644 docs/images/copy-successful-icon.svg create mode 100644 docs/images/docs_logo.svg create mode 100644 docs/images/footer-go-to-link.svg create mode 100644 docs/images/go-to-top-icon.svg create mode 100644 docs/images/logo-icon.svg create mode 100644 docs/index.html create mode 100644 docs/navigation.html create mode 100644 docs/scripts/clipboard.js create mode 100644 docs/scripts/main.js create mode 100644 docs/scripts/navigation-loader.js create mode 100644 docs/scripts/navigation-pane.json create mode 100644 docs/scripts/pages.json create mode 100644 docs/scripts/platform-content-handler.js create mode 100644 docs/scripts/sourceset_dependencies.js create mode 100644 docs/styles/jetbrains-mono.css create mode 100644 docs/styles/logo-styles.css create mode 100644 docs/styles/main.css create mode 100644 docs/styles/style.css mode change 100644 => 100755 examples/gradlew diff --git a/.circleci/config.yml b/.circleci/config.yml index 86b3b8f..3f715d8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -34,7 +34,7 @@ jobs: <<: *defaults docker: - - image: openjdk:13-jdk + - image: openjdk:14-jdk <<: *defaults_gradle @@ -51,5 +51,5 @@ workflows: gradle: jobs: - build_gradle_jdk8 - - build_gradle_jdk13 + - build_gradle_jdk14 diff --git a/.gitignore b/.gitignore index f007981..f58d3e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,22 +1,8 @@ -.vscode/* + !.vscode/extensions.json !.vscode/launch.json !.vscode/settings.json !.vscode/tasks.json - -__pycache__ -.classpath -.DS_Store -.gradle -.history -.kobalt -.mtj.tmp/ -.mvn/timing.properties -.mvn/wrapper/maven-wrapper.jar -.nb-gradle -.project -.scannerwork -.settings *.class *.code-workspace *.ctxt @@ -27,7 +13,21 @@ __pycache__ *.sublime-* *.tar.gz *.zip -/**/.idea_modules/ +.DS_Store +.classpath +.gradle +.history +.kobalt +.mtj.tmp/ +.mvn/timing.properties +.mvn/wrapper/maven-wrapper.jar +.nb-gradle +.project +.scannerwork +.settings +.vscode/* +/**/.idea/$CACHE_FILE$ +/**/.idea/$PRODUCT_WORKSPACE_FILE$ /**/.idea/**/caches/build_file_checksums.ser /**/.idea/**/contentModel.xml /**/.idea/**/dataSources.ids @@ -48,8 +48,9 @@ __pycache__ /**/.idea/**/uiDesigner.xml /**/.idea/**/usage.statistics.xml /**/.idea/**/workspace.xml -/**/.idea/$CACHE_FILE$ -/**/.idea/$PRODUCT_WORKSPACE_FILE$ +/**/.idea_modules/ +Thumbs.db +__pycache__ atlassian-ide-plugin.xml bin/ build/ @@ -71,6 +72,7 @@ lib/kotlin* libs/ local.properties out/ +pom.xml.asc pom.xml.next pom.xml.releaseBackup pom.xml.tag @@ -80,5 +82,4 @@ project.properties release.properties target/ test-output -Thumbs.db venv diff --git a/.travis.yml b/.travis.yml index 0fe45a9..15bb555 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,13 +14,13 @@ addons: jdk: - oraclejdk8 - - openjdk13 + - openjdk14 before_install: - chmod +x gradlew after_success: - | - if [ "${TRAVIS_TEST_RESULT}" == 0 ] && [ "$TRAVIS_JDK_VERSION" == oraclejdk8 ]; then + if [ "${TRAVIS_TEST_RESULT}" == 0 ] && [ "$TRAVIS_JDK_VERSION" == "openjdk14" ]; then ./gradlew sonarqube fi diff --git a/README.md b/README.md index 21dd7bb..dad7604 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](http://opensource.org/licenses/BSD-3-Clause) [![release](https://img.shields.io/github/release/ethauvin/akismet-kotlin.svg)](https://github.com/ethauvin/akismet-kotlin/releases/latest) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/akismet-kotlin/badge.svg)](https://maven-badges.herokuapp.com/maven-central/net.thauvin.erik/akismet-kotlin) [![Download](https://api.bintray.com/packages/ethauvin/maven/akismet-kotlin/images/download.svg)](https://bintray.com/ethauvin/maven/akismet-kotlin/_latestVersion) +[![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](http://opensource.org/licenses/BSD-3-Clause) [![Release](https://img.shields.io/github/release/ethauvin/akismet-kotlin.svg)](https://github.com/ethauvin/akismet-kotlin/releases/latest) [![Maven Central](https://img.shields.io/maven-central/v/net.thauvin.erik/akismet-kotlin.svg?label=maven%20central)](https://search.maven.org/search?q=g:%22net.thauvin.erik%22%20AND%20a:%22akismet-kotlin%22) [![Known Vulnerabilities](https://snyk.io/test/github/ethauvin/akismet-kotlin/badge.svg?targetFile=pom.xml)](https://snyk.io/test/github/ethauvin/akismet-kotlin?targetFile=pom.xml) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=ethauvin_akismet-kotlin&metric=alert_status)](https://sonarcloud.io/dashboard?id=ethauvin_akismet-kotlin) [![Build Status](https://travis-ci.com/ethauvin/akismet-kotlin.svg?branch=master)](https://travis-ci.com/ethauvin/akismet-kotlin) [![CircleCI](https://circleci.com/gh/ethauvin/akismet-kotlin/tree/master.svg?style=shield)](https://circleci.com/gh/ethauvin/akismet-kotlin/tree/master) @@ -56,21 +56,18 @@ if (isSpam) { [View Full Example](https://github.com/ethauvin/akismet-kotlin/blob/master/examples/src/main/java/com/example/AkismetSample.java) - ### Gradle To use with [Gradle](https://gradle.org/), include the following dependency in your [build](https://github.com/ethauvin/akismet-kotlin/blob/master/examples/build.gradle.kts) file: ```gradle -repositories { - jcenter() -} - dependencies { - implementation("net.thauvin.erik:akismet-kotlin:0.9.2") + implementation("net.thauvin.erik:akismet-kotlin:0.9.3") } ``` +Instructions for using with Maven, Ivy, etc. can be found on [Maven Central](https://search.maven.org/artifact/net.thauvin.erik/akismet-kotlin/0.9.3/jar). + ### HttpServletRequest The more information is sent to Akismet, the more accurate the response is. An [HttpServletRequest](https://javaee.github.io/javaee-spec/javadocs/javax/servlet/http/HttpServletRequest.html) can be used as a parameter so that all the relevant information is automatically included. diff --git a/build.gradle.kts b/build.gradle.kts index 30ce289..8df8ca8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,22 +1,19 @@ -import com.jfrog.bintray.gradle.tasks.BintrayUploadTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import java.io.FileInputStream import java.net.URL -import java.util.* plugins { jacoco java `maven-publish` - id("com.github.ben-manes.versions") version "0.29.0" - id("com.jfrog.bintray") version "1.8.5" - id("io.gitlab.arturbosch.detekt") version "1.11.0" + signing + id("com.github.ben-manes.versions") version "0.38.0" + id("io.gitlab.arturbosch.detekt") version "1.16.0" id("net.thauvin.erik.gradle.semver") version "1.0.4" - id("org.jetbrains.dokka") version "1.4.0-rc" - id("org.jetbrains.kotlin.jvm") version "1.4.0" - id("org.jetbrains.kotlin.kapt") version "1.4.0" - id("org.jetbrains.kotlin.plugin.serialization") version "1.4.0" - id("org.sonarqube") version "3.0" + id("org.jetbrains.dokka") version "1.4.30" + id("org.jetbrains.kotlin.jvm") version "1.4.31" + id("org.jetbrains.kotlin.kapt") version "1.4.31" + id("org.jetbrains.kotlin.plugin.serialization") version "1.4.31" + id("org.sonarqube") version "3.1.1" } group = "net.thauvin.erik" @@ -32,27 +29,14 @@ var semverProcessor = "net.thauvin.erik:semver:1.2.0" val publicationName = "mavenJava" object VersionInfo { - const val okhttp = "4.8.1" + const val okhttp = "4.9.1" } val versions: VersionInfo by extra { VersionInfo } -// Load local.properties -File("local.properties").apply { - if (exists()) { - FileInputStream(this).use { fis -> - Properties().apply { - load(fis) - forEach { (k, v) -> - extra[k as String] = v - } - } - } - } -} - repositories { - jcenter() + mavenCentral() + jcenter() // needed for Dokka } dependencies { @@ -65,8 +49,8 @@ dependencies { implementation("com.squareup.okhttp3:logging-interceptor:${versions.okhttp}") implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:1.0-M1-1.4.0-rc-218") - testImplementation("org.mockito:mockito-core:3.5.0") - testImplementation("org.testng:testng:7.3.0") + testImplementation("org.mockito:mockito-core:3.8.0") + testImplementation("org.testng:testng:7.4.0") } kapt { @@ -79,13 +63,10 @@ detekt { baseline = project.rootDir.resolve("config/detekt/baseline.xml") } -jacoco { - toolVersion = "0.8.5" -} - java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 + withSourcesJar() } sonarqube { @@ -95,11 +76,6 @@ sonarqube { } } -val sourcesJar by tasks.creating(Jar::class) { - archiveClassifier.set("sources") - from(sourceSets.getByName("main").allSource) -} - val javadocJar by tasks.creating(Jar::class) { dependsOn(tasks.dokkaJavadoc) from(tasks.dokkaJavadoc) @@ -129,7 +105,7 @@ tasks { } assemble { - dependsOn(sourcesJar, javadocJar) + dependsOn(javadocJar) } clean { @@ -139,20 +115,20 @@ tasks { } dokkaHtml { - outputDirectory = "$projectDir/docs" + outputDirectory.set(file("$projectDir/docs")) dokkaSourceSets { configureEach { - jdkVersion = 8 - includes = listOf("config/dokka/packages.md") + jdkVersion.set(8) + includes.from("config/dokka/packages.md") sourceLink { - path = "/src/main/kotlin/" - url = "https://github.com/ethauvin/${project.name}/tree/master/src/main/kotlin/" - lineSuffix = "#L" + localDirectory.set(file("/src/main/kotlin/")) + remoteUrl.set(URL("https://github.com/ethauvin/${project.name}/tree/master/src/main/kotlin/")) + remoteLineSuffix.set("#L") } externalDocumentationLink { - url = URL("https://javaee.github.io/javaee-spec/javadocs/") - packageListUrl = URL("https://javaee.github.io/javaee-spec/javadocs/package-list") + url.set(URL("https://javaee.github.io/javaee-spec/javadocs/")) + packageListUrl.set(URL("https://javaee.github.io/javaee-spec/javadocs/package-list")) } } } @@ -161,11 +137,11 @@ tasks { dokkaJavadoc { dokkaSourceSets { configureEach { - jdkVersion = 8 - includes = listOf("config/dokka/packages.md") + jdkVersion.set(8) + includes.from("config/dokka/packages.md") externalDocumentationLink { - url = URL("https://javaee.github.io/javaee-spec/javadocs/") - packageListUrl = URL("https://javaee.github.io/javaee-spec/javadocs/package-list") + url.set(URL("https://javaee.github.io/javaee-spec/javadocs/")) + packageListUrl.set(URL("https://javaee.github.io/javaee-spec/javadocs/package-list")) } } } @@ -204,20 +180,10 @@ tasks { } } - val bintrayUpload by existing(BintrayUploadTask::class) { - dependsOn(publishToMavenLocal, gitTag) - doFirst { - versionName = "${project.version}" - versionDesc = "${project.name} ${project.version}" - versionVcsTag = "${project.version}" - versionReleased = Date().toString() - } - } - register("release") { - description = "Publishes version ${project.version} to Bintray." + description = "Publishes version ${project.version} to local repository." group = PublishingPlugin.PUBLISH_TASK_GROUP - dependsOn("wrapper", bintrayUpload) + dependsOn("wrapper", "deploy", "gitTag", "publishToMavenLocal") } "sonarqube" { @@ -225,70 +191,51 @@ tasks { } } -fun findProperty(s: String) = project.findProperty(s) as String? -bintray { - user = findProperty("bintray.user") - key = findProperty("bintray.apikey") - publish = isRelease - setPublications(publicationName) - pkg.apply { - repo = "maven" - name = project.name - desc = description - websiteUrl = mavenUrl - issueTrackerUrl = "$mavenUrl/issues" - githubRepo = gitHub - githubReleaseNotesFile = "README.md" - vcsUrl = "$mavenUrl.git" - setLabels("akismet", "android", "automattic", "blog", "comments", "java", "kismet", "kotlin", "spam") - setLicenses("BSD 3-Clause") - publicDownloadNumbers = true - version.apply { - name = project.version as String - desc = description - vcsTag = project.version as String - gpg.apply { - sign = true - } - } - } -} - publishing { publications { create(publicationName) { from(components["java"]) - artifact(sourcesJar) artifact(javadocJar) - pom.withXml { - asNode().apply { - appendNode("name", project.name) - appendNode("description", project.description) - appendNode("url", mavenUrl) - - appendNode("licenses").appendNode("license").apply { - appendNode("name", "BSD 3-Clause") - appendNode("url", "https://opensource.org/licenses/BSD-3-Clause") + pom { + name.set(project.name) + description.set(project.description) + url.set(mavenUrl) + licenses { + license { + name.set("BSD 3-Clause") + url.set("https://opensource.org/licenses/BSD-3-Clause") } - - appendNode("developers").appendNode("developer").apply { - appendNode("id", "ethauvin") - appendNode("name", "Erik C. Thauvin") - appendNode("email", "erik@thauvin.net") - } - - appendNode("scm").apply { - appendNode("connection", "scm:git:$mavenUrl.git") - appendNode("developerConnection", "scm:git:git@github.com:$gitHub.git") - appendNode("url", mavenUrl) - } - - appendNode("issueManagement").apply { - appendNode("system", "GitHub") - appendNode("url", "$mavenUrl/issues") + } + developers { + developer { + id.set("ethauvin") + name.set("Erik C. Thauvin") + email.set("erik@thauvin.net") + url.set("https://erik.thauvin.net/") } } + scm { + connection.set("scm:git:git://github.com/$gitHub.git") + developerConnection.set("scm:git:git@github.com:$gitHub.git") + url.set("$mavenUrl") + } + issueManagement { + system.set("GitHub") + url.set("$mavenUrl/issues") + } } } } + repositories { + maven { + name = "ossrh" + url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/") + credentials(PasswordCredentials::class) + } + } +} + +signing { + useGpgCmd() + sign(publishing.publications[publicationName]) } diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html new file mode 100644 index 0000000..c52db5a --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html @@ -0,0 +1,44 @@ + + + + AkismetComment + + +
+
+ + +
+
+
+
+
+
+ +
+

AkismetComment

+
+
+ +
+
fun AkismetComment(request: HttpServletRequest)
+
+

Create an Akismet comment extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.

See the Akismet API for more details.

See also

+
+ +
+
fun AkismetComment(userIp: String, userAgent: String)
+
+

Create an Akismet comment instance.

See the Akismet API for more details.

Parameters

userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html new file mode 100644 index 0000000..b3c7ad4 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html @@ -0,0 +1,38 @@ + + + + ADMIN_ROLE + + +
+
+ + +
+
+
+
+
+
+ +
+

ADMIN_ROLE

+
+
+ +
+
const val ADMIN_ROLE: String
+
+

Administrator role. If used, Akismet will always return false.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html new file mode 100644 index 0000000..12840ac --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html @@ -0,0 +1,38 @@ + + + + TYPE_BLOG_POST + + +
+
+ + +
+
+
+
+
+
+ +
+

TYPE_BLOG_POST

+
+
+ +
+
const val TYPE_BLOG_POST: String
+
+

A blog post.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html new file mode 100644 index 0000000..242714a --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html @@ -0,0 +1,38 @@ + + + + TYPE_COMMENT + + +
+
+ + +
+
+
+
+
+
+ +
+

TYPE_COMMENT

+
+
+ +
+
const val TYPE_COMMENT: String
+
+

A blog comment.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html new file mode 100644 index 0000000..f61c5a4 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html @@ -0,0 +1,38 @@ + + + + TYPE_CONTACT_FORM + + +
+
+ + +
+
+
+
+
+
+ +
+

TYPE_CONTACT_FORM

+
+
+ +
+
const val TYPE_CONTACT_FORM: String
+
+

A contact form or feedback form submission.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html new file mode 100644 index 0000000..b3bf653 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html @@ -0,0 +1,38 @@ + + + + TYPE_FORUM_POST + + +
+
+ + +
+
+
+
+
+
+ +
+

TYPE_FORUM_POST

+
+
+ +
+
const val TYPE_FORUM_POST: String
+
+

A top-level forum post.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html new file mode 100644 index 0000000..e3a1745 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html @@ -0,0 +1,38 @@ + + + + TYPE_MESSAGE + + +
+
+ + +
+
+
+
+
+
+ +
+

TYPE_MESSAGE

+
+
+ +
+
const val TYPE_MESSAGE: String
+
+

A message sent between just a few users.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html new file mode 100644 index 0000000..054e707 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html @@ -0,0 +1,38 @@ + + + + TYPE_PINGBACK + + +
+
+ + +
+
+
+
+
+
+ +
+

TYPE_PINGBACK

+
+
+ +
+
const val TYPE_PINGBACK: String
+
+

A pingback.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html new file mode 100644 index 0000000..aaa772c --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html @@ -0,0 +1,38 @@ + + + + TYPE_REPLY + + +
+
+ + +
+
+
+
+
+
+ +
+

TYPE_REPLY

+
+
+ +
+
const val TYPE_REPLY: String
+
+

A reply to a top-level forum post.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html new file mode 100644 index 0000000..09781f8 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html @@ -0,0 +1,38 @@ + + + + TYPE_SIGNUP + + +
+
+ + +
+
+
+
+
+
+ +
+

TYPE_SIGNUP

+
+
+ +
+
const val TYPE_SIGNUP: String
+
+

A new user account.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html new file mode 100644 index 0000000..f8c3089 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html @@ -0,0 +1,38 @@ + + + + TYPE_TRACKBACK + + +
+
+ + +
+
+
+
+
+
+ +
+

TYPE_TRACKBACK

+
+
+ +
+
const val TYPE_TRACKBACK: String
+
+

A trackback.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html new file mode 100644 index 0000000..e504800 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html @@ -0,0 +1,38 @@ + + + + TYPE_TWEET + + +
+
+ + +
+
+
+
+
+
+ +
+

TYPE_TWEET

+
+
+ +
+
const val TYPE_TWEET: String
+
+

A Twitter message.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html new file mode 100644 index 0000000..4d85051 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html @@ -0,0 +1,183 @@ + + + + Companion + + +
+
+ + +
+
+
+
+
+
+ +
+

Companion

+
object Companion
+
+
+
+
+

Properties

+
+
+
+
ADMIN_ROLE +
Link copied to clipboard
+
+
+
+
const val ADMIN_ROLE: String
Administrator role.
+
+
+
+
+ +
+
+
TYPE_BLOG_POST +
Link copied to clipboard
+
+
+
+
const val TYPE_BLOG_POST: String
A blog post.
+
+
+
+
+ +
+
+
TYPE_COMMENT +
Link copied to clipboard
+
+
+
+
const val TYPE_COMMENT: String
A blog comment.
+
+
+
+
+ +
+
+
TYPE_CONTACT_FORM +
Link copied to clipboard
+
+
+
+
const val TYPE_CONTACT_FORM: String
A contact form or feedback form submission.
+
+
+
+
+ +
+
+
TYPE_FORUM_POST +
Link copied to clipboard
+
+
+
+
const val TYPE_FORUM_POST: String
A top-level forum post.
+
+
+
+
+ +
+
+
TYPE_MESSAGE +
Link copied to clipboard
+
+
+
+
const val TYPE_MESSAGE: String
A message sent between just a few users.
+
+
+
+
+ +
+
+
TYPE_PINGBACK +
Link copied to clipboard
+
+
+
+
const val TYPE_PINGBACK: String
A pingback.
+
+
+
+
+ +
+
+
TYPE_REPLY +
Link copied to clipboard
+
+
+
+
const val TYPE_REPLY: String
A reply to a top-level forum post.
+
+
+
+
+ +
+
+
TYPE_SIGNUP +
Link copied to clipboard
+
+
+
+
const val TYPE_SIGNUP: String
A new user account.
+
+
+
+
+ +
+
+
TYPE_TRACKBACK +
Link copied to clipboard
+
+
+
+
const val TYPE_TRACKBACK: String
A trackback.
+
+
+
+
+ +
+
+
TYPE_TWEET +
Link copied to clipboard
+
+
+
+
const val TYPE_TWEET: String
A Twitter message.
+
+
+
+
+
+
+
+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html new file mode 100644 index 0000000..aeaabf3 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html @@ -0,0 +1,38 @@ + + + + authorEmail + + +
+
+ + +
+
+
+
+
+
+ +
+

authorEmail

+
+
+ +
+
var authorEmail: String?
+
+

Email address submitted with the comment.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html new file mode 100644 index 0000000..21d8d84 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html @@ -0,0 +1,38 @@ + + + + authorUrl + + +
+
+ + +
+
+
+
+
+
+ +
+

authorUrl

+
+
+ +
+
var authorUrl: String?
+
+

URL submitted with comment.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html new file mode 100644 index 0000000..5070517 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html @@ -0,0 +1,38 @@ + + + + author + + +
+
+ + +
+
+
+
+
+
+ +
+

author

+
+
+ +
+
var author: String?
+
+

Name submitted with the comment.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html new file mode 100644 index 0000000..d8c3806 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html @@ -0,0 +1,38 @@ + + + + blogCharset + + +
+
+ + +
+
+
+
+
+
+ +
+

blogCharset

+
+
+ +
+
var blogCharset: String?
+
+

The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html new file mode 100644 index 0000000..33b8b21 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html @@ -0,0 +1,38 @@ + + + + blogLang + + +
+
+ + +
+
+
+
+
+
+ +
+

blogLang

+
+
+ +
+
var blogLang: String?
+
+

Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.

A site with articles in English and French might use: en, fr_ca

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html new file mode 100644 index 0000000..41938a0 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html @@ -0,0 +1,38 @@ + + + + content + + +
+
+ + +
+
+
+
+
+
+ +
+

content

+
+
+ +
+
var content: String?
+
+

The content that was submitted.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html new file mode 100644 index 0000000..007629c --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html @@ -0,0 +1,38 @@ + + + + dateGmt + + +
+
+ + +
+
+
+
+
+
+ +
+

dateGmt

+
+
+ +
+
var dateGmt: String?
+
+

The UTC timestamp of the creation of the comment, in ISO 8601 format.

May be omitted if the comment is sent to the API at the time it is created.

See also

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html new file mode 100644 index 0000000..0e6fa08 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html @@ -0,0 +1,38 @@ + + + + equals + + +
+
+ + +
+
+
+
+
+
+ +
+

equals

+
+
+ +
+
open operator override fun equals(other: Any?): Boolean
+
+

Indicates whether some other object is equal to this one.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html new file mode 100644 index 0000000..0df04ef --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html @@ -0,0 +1,38 @@ + + + + hashCode + + +
+
+ + +
+
+
+
+
+
+ +
+

hashCode

+
+
+ +
+
open override fun hashCode(): Int
+
+

Returns a hash code value for the object.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html new file mode 100644 index 0000000..3c70742 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html @@ -0,0 +1,382 @@ + + + + AkismetComment + + +
+
+ + +
+
+
+
+
+
+ +
+

AkismetComment

+
open class AkismetComment(userIp: String, userAgent: String)

A comment to send to Akismet.

Most everything is optional. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data.

See the Akismet API for more details.

+
+
+
+
+

Parameters

+
+
userIp

IP address of the comment submitter.

userAgent

User agent string of the web browser submitting the comment.

+
+

Constructors

+
+
+
+
AkismetComment +
Link copied to clipboard
+
+
+
+
fun AkismetComment(request: HttpServletRequest)
Create an Akismet comment extracting the userIp, userAgent, referrer and serverEnv environment variables from a Servlet request.
+
+
+
+
+ +
+
+
AkismetComment +
Link copied to clipboard
+
+
+
+
fun AkismetComment(userIp: String, userAgent: String)
Create an Akismet comment instance.
+
+
+
+
+
+

Types

+
+
+
+
Companion +
Link copied to clipboard
+
+
+
+ +
+
object Companion
+
+
+
+
+
+
+
+

Functions

+
+
+
+
equals +
Link copied to clipboard
+
+
+
+ +
+
open operator override fun equals(other: Any?): Boolean
+
+
Indicates whether some other object is equal to this one.
+
+
+
+
+ +
+
+
hashCode +
Link copied to clipboard
+
+
+
+ +
+
open override fun hashCode(): Int
+
+
Returns a hash code value for the object.
+
+
+
+
+ +
+
+
toJson +
Link copied to clipboard
+
+
+
+ +
+
fun toJson(): String
+
+
Returns a JSON representation of the comment.
+
+
+
+
+ +
+
+
toString +
Link copied to clipboard
+
+
+
+ +
+
open override fun toString(): String
+
+
Returns a JSON representation of the comment.
+
+
+
+
+
+

Properties

+
+
+
+
author +
Link copied to clipboard
+
+
+
+
var author: String?
Name submitted with the comment.
+
+
+
+
+ +
+
+
authorEmail +
Link copied to clipboard
+
+
+
+
var authorEmail: String?
Email address submitted with the comment.
+
+
+
+
+ +
+
+
authorUrl +
Link copied to clipboard
+
+
+
+
var authorUrl: String?
URL submitted with comment.
+
+
+
+
+ +
+
+
blogCharset +
Link copied to clipboard
+
+
+
+
var blogCharset: String?
The character encoding for the form values included in comment parameters, such as UTF-8 or ISO-8859-1
+
+
+
+
+ +
+
+
blogLang +
Link copied to clipboard
+
+
+
+
var blogLang: String?
Indicates the language(s) in use on the blog or site, in ISO 639-1 format, comma-separated.
+
+
+
+
+ +
+
+
content +
Link copied to clipboard
+
+
+
+
var content: String?
The content that was submitted.
+
+
+
+
+ +
+
+
dateGmt +
Link copied to clipboard
+
+
+
+
var dateGmt: String?
The UTC timestamp of the creation of the comment, in ISO 8601 format.
+
+
+
+
+ +
+
+
isTest +
Link copied to clipboard
+
+
+
+
var isTest: Boolean = false
This is an optional parameter.
+
+
+
+
+ +
+
+
permalink +
Link copied to clipboard
+
+
+
+
var permalink: String?
The full permanent URL of the entry the comment was submitted to.
+
+
+
+
+ +
+
+
postModifiedGmt +
Link copied to clipboard
+
+
+
+
var postModifiedGmt: String?
The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.
+
+
+
+
+ +
+
+
recheckReason +
Link copied to clipboard
+
+
+
+
var recheckReason: String?
If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.
+
+
+
+
+ +
+
+
referrer +
Link copied to clipboard
+
+
+
+
var referrer: String?
The content of the referer header should be set here.
+
+
+
+
+ +
+
+
serverEnv +
Link copied to clipboard
+
+
+
+
var serverEnv: Map<String, String>
In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request.
+
+
+
+
+ +
+
+
type +
Link copied to clipboard
+
+
+
+
var type: String?
A string that describes the type of content being sent, such as:You may send a value not listed above if none of them accurately describe your content.
+
+
+
+
+ +
+
+
userAgent +
Link copied to clipboard
+
+
+
+
val userAgent: String
User agent string of the web browser submitting the comment.
+
+
+
+
+ +
+
+
userIp +
Link copied to clipboard
+
+
+
+
val userIp: String
IP address of the comment submitter.
+
+
+
+
+ +
+
+
userRole +
Link copied to clipboard
+
+
+
+
var userRole: String?
The user role of the user who submitted the comment.
+
+
+
+
+
+
+
+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html new file mode 100644 index 0000000..ffd5357 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html @@ -0,0 +1,38 @@ + + + + isTest + + +
+
+ + +
+
+
+
+
+
+ +
+

isTest

+
+
+ +
+
var isTest: Boolean = false
+
+

This is an optional parameter. You can use it when submitting test queries to Akismet.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html new file mode 100644 index 0000000..2e5252a --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html @@ -0,0 +1,38 @@ + + + + permalink + + +
+
+ + +
+
+
+
+
+
+ +
+

permalink

+
+
+ +
+
var permalink: String?
+
+

The full permanent URL of the entry the comment was submitted to.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html new file mode 100644 index 0000000..2fcb63f --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html @@ -0,0 +1,38 @@ + + + + postModifiedGmt + + +
+
+ + +
+
+
+
+
+
+ +
+

postModifiedGmt

+
+
+ +
+
var postModifiedGmt: String?
+
+

The UTC timestamp of the publication time for the post, page or thread on which the comment was posted.

See also

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html new file mode 100644 index 0000000..30198b6 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html @@ -0,0 +1,38 @@ + + + + recheckReason + + +
+
+ + +
+
+
+
+
+
+ +
+

recheckReason

+
+
+ +
+
var recheckReason: String?
+
+

If you are sending content to Akismet to be rechecked, such as a post that has been edited or old pending comments that you'd like to recheck, include this parameter with a string describing why the content is being rechecked.

For example: edit

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html new file mode 100644 index 0000000..9510d02 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html @@ -0,0 +1,38 @@ + + + + referrer + + +
+
+ + +
+
+
+
+
+
+ +
+

referrer

+
+
+ +
+
var referrer: String?
+
+

The content of the referer header should be set here.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html new file mode 100644 index 0000000..66601cc --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html @@ -0,0 +1,38 @@ + + + + serverEnv + + +
+
+ + +
+
+
+
+
+
+ +
+

serverEnv

+
+
+ +
+
var serverEnv: Map<String, String>
+
+

In PHP, there is an array of environmental variables called $_SERVER that contains information about the Web server itself as well as a key/value for every HTTP header sent with the request. This data is highly useful to Akismet.

How the submitted content interacts with the server can be very telling, so please include as much of it as possible.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html new file mode 100644 index 0000000..9522ccd --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html @@ -0,0 +1,38 @@ + + + + toJson + + +
+
+ + +
+
+
+
+
+
+ +
+

toJson

+
+
+ +
+
fun toJson(): String
+
+

Returns a JSON representation of the comment.

See also

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html new file mode 100644 index 0000000..a9b3bbb --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html @@ -0,0 +1,38 @@ + + + + toString + + +
+
+ + +
+
+
+
+
+
+ +
+

toString

+
+
+ +
+
open override fun toString(): String
+
+

Returns a JSON representation of the comment.

See also

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html new file mode 100644 index 0000000..af5c3d6 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html @@ -0,0 +1,38 @@ + + + + type + + +
+
+ + +
+
+
+
+
+
+ +
+

type

+
+
+ +
+
var type: String?
+
+

A string that describes the type of content being sent, such as:

You may send a value not listed above if none of them accurately describe your content.

This is further explained here.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html new file mode 100644 index 0000000..052a139 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html @@ -0,0 +1,38 @@ + + + + userAgent + + +
+
+ + +
+
+
+
+
+
+ +
+

userAgent

+
+
+ +
+
val userAgent: String
+
+

Parameters

userAgent

User agent string of the web browser submitting the comment.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html new file mode 100644 index 0000000..98cc462 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html @@ -0,0 +1,38 @@ + + + + userIp + + +
+
+ + +
+
+
+
+
+
+ +
+

userIp

+
+
+ +
+
val userIp: String
+
+

Parameters

userIp

IP address of the comment submitter.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html new file mode 100644 index 0000000..f47d381 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html @@ -0,0 +1,38 @@ + + + + userRole + + +
+
+ + +
+
+
+
+
+
+ +
+

userRole

+
+
+ +
+
var userRole: String?
+
+

The user role of the user who submitted the comment. This is an optional parameter.

If you set it to ADMIN_ROLE, Akismet will always return false.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html new file mode 100644 index 0000000..5826138 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html @@ -0,0 +1,44 @@ + + + + Akismet + + +
+
+ + +
+
+
+
+
+
+ +
+

Akismet

+
+
+ +
+
fun Akismet(apiKey: String, blog: String)
+
+

Create a new instance using an Akismet API key and URL registered with Akismet.

+
+ +
+
fun Akismet(apiKey: String)
+
+

Creates new instance using the provided Akismet API key.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html new file mode 100644 index 0000000..dd8437f --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html @@ -0,0 +1,44 @@ + + + + dateToGmt + + +
+
+ + +
+
+
+
+
+
+ +
+

dateToGmt

+
+
+ +
+
fun dateToGmt(date: Date): String
+
+

Convert a date to a UTC timestamp. (ISO 8601)

See also

+
+ +
+
fun dateToGmt(date: LocalDateTime): String
+
+

Convert a locale date/time to a UTC timestamp. (ISO 8601)

See also

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html new file mode 100644 index 0000000..2e5aa90 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html @@ -0,0 +1,80 @@ + + + + Companion + + +
+
+ + +
+
+
+
+
+
+ +
+

Companion

+
object Companion
+
+
+
+
+

Functions

+
+
+
+
dateToGmt +
Link copied to clipboard
+
+
+
+ +
+
fun dateToGmt(date: LocalDateTime): String
+
+
Convert a locale date/time to a UTC timestamp.
+
+ +
+
fun dateToGmt(date: Date): String
+
+
Convert a date to a UTC timestamp.
+
+
+
+
+ +
+
+
jsonComment +
Link copied to clipboard
+
+
+
+ +
+
fun jsonComment(json: String): AkismetComment
+
+
(Re)Create a comment from a JSON string.
+
+
+
+
+
+
+
+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html new file mode 100644 index 0000000..c9c5ac0 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html @@ -0,0 +1,38 @@ + + + + jsonComment + + +
+
+ + +
+
+
+
+
+
+ +
+

jsonComment

+
+
+ +
+
fun jsonComment(json: String): AkismetComment
+
+

(Re)Create a comment from a JSON string.

See also

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html new file mode 100644 index 0000000..dd60b4c --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html @@ -0,0 +1,38 @@ + + + + appUserAgent + + +
+
+ + +
+
+
+
+
+
+ +
+

appUserAgent

+
+
+ +
+
var appUserAgent: String
+
+

The application user agent to be sent to Akismet.

If possible, the application user agent string should always use the following format:

    Application Name/Version

The library's own user agent string will automatically be appended.

See the Akismet API for more details.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/blog.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/blog.html new file mode 100644 index 0000000..dbc6fa2 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/blog.html @@ -0,0 +1,38 @@ + + + + blog + + +
+
+ + +
+
+
+
+
+
+ +
+

blog

+
+
+ +
+
var blog: String
+
+

The URL registered with Akismet.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html new file mode 100644 index 0000000..089bde2 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html @@ -0,0 +1,38 @@ + + + + checkComment + + +
+
+ + +
+
+
+
+
+
+ +
+

checkComment

+
+
+ +
+
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean
+
+

Comment Check.

This is the call you will make the most. It takes a number of arguments and characteristics about the submitted content and then returns a thumbs up or thumbs down. Performance can drop dramatically if you choose to exclude data points. The more data you send Akismet about each comment, the greater the accuracy. They recommend erring on the side of including too much data

By default, if an error (IO, empty response from Akismet, etc.) occurs the function will return false and log the error, use the trueOnError parameter to change this behavior.

See the Akismet API for more details.

Return

true if the comment is spam, false if the comment is not.

Parameters

trueOnError

Set to return true on error.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html new file mode 100644 index 0000000..81c9cc7 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html @@ -0,0 +1,38 @@ + + + + debugHelp + + +
+
+ + +
+
+
+
+
+
+ +
+

debugHelp

+
+
+ +
+
var debugHelp: String
+
+

The x-akismet-debug-help header from the last operation, if any.

If the call returns neither true nor false, the x-akismet-debug-help header will provide context for any error that has occurred.

Note that the x-akismet-debug-help header will not always be sent if a response does not return false or true.

See the Akismet API for more details.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/error-message.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/error-message.html new file mode 100644 index 0000000..d3ef1a0 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/error-message.html @@ -0,0 +1,38 @@ + + + + errorMessage + + +
+
+ + +
+
+
+
+
+
+ +
+

errorMessage

+
+
+ +
+
var errorMessage: String
+
+

The error message.

The error (IO, empty response from Akismet, etc.) message is also logged as a warning.

See also

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html new file mode 100644 index 0000000..d0b22fd --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html @@ -0,0 +1,38 @@ + + + + executeMethod + + +
+
+ + +
+
+
+
+
+
+ +
+

executeMethod

+
+
+ +
+
fun executeMethod(apiUrl: HttpUrl?, formBody: FormBody, trueOnError: Boolean = false): Boolean
+
+

Execute a call to an Akismet REST API method.

Parameters

apiUrl

The Akismet API URL endpoint. (e.g. https://rest.akismet.com/1.1/verify-key)

formBody

The HTTP POST form body containing the request parameters to be submitted.

trueOnError

Set to return true on error (IO, empty response, etc.)

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html new file mode 100644 index 0000000..7c012e4 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html @@ -0,0 +1,38 @@ + + + + httpStatusCode + + +
+
+ + +
+
+
+
+
+
+ +
+

httpStatusCode

+
+
+ +
+
var httpStatusCode: Int = 0
+
+

The HTTP status code of the last operation.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/index.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/index.html new file mode 100644 index 0000000..a96b905 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/index.html @@ -0,0 +1,321 @@ + + + + Akismet + + +
+
+ + +
+
+
+
+
+
+ +
+

Akismet

+
open class Akismet(apiKey: String)

Provides access to the Akismet API.

+
+
+
+
+

Constructors

+
+
+
+
Akismet +
Link copied to clipboard
+
+
+
+
fun Akismet(apiKey: String, blog: String)
Create a new instance using an Akismet API key and URL registered with Akismet.
+
+
+
+
+ +
+
+
Akismet +
Link copied to clipboard
+
+
+
+
fun Akismet(apiKey: String)
Creates new instance using the provided Akismet API key.
+
+
+
+
+
+

Types

+
+
+
+
Companion +
Link copied to clipboard
+
+
+
+ +
+
object Companion
+
+
+
+
+
+
+
+

Functions

+
+
+
+
checkComment +
Link copied to clipboard
+
+
+
+ +
+
fun checkComment(comment: AkismetComment, trueOnError: Boolean = false): Boolean
+
+
Comment Check.
+
+
+
+
+ +
+
+
executeMethod +
Link copied to clipboard
+
+
+
+ +
+
fun executeMethod(apiUrl: HttpUrl?, formBody: FormBody, trueOnError: Boolean = false): Boolean
+
+
Execute a call to an Akismet REST API method.
+
+
+
+
+ +
+
+
reset +
Link copied to clipboard
+
+
+
+ +
+
fun reset()
+
+
+
+
+
+
+ +
+
+
submitHam +
Link copied to clipboard
+
+
+
+ +
+
fun submitHam(comment: AkismetComment): Boolean
+
+
Submit Ham.
+
+
+
+
+ +
+
+
submitSpam +
Link copied to clipboard
+
+
+
+ +
+
fun submitSpam(comment: AkismetComment): Boolean
+
+
Submit Spam.
+
+
+
+
+ +
+
+
verifyKey +
Link copied to clipboard
+
+
+
+ +
+
fun verifyKey(): Boolean
+
+
Key Verification.
+
+
+
+
+
+

Properties

+
+
+
+
appUserAgent +
Link copied to clipboard
+
+
+
+
var appUserAgent: String
The application user agent to be sent to Akismet.
+
+
+
+
+ +
+
+
blog +
Link copied to clipboard
+
+
+
+
var blog: String
The URL registered with Akismet.
+
+
+
+
+ +
+
+
debugHelp +
Link copied to clipboard
+
+
+
+
var debugHelp: String
The x-akismet-debug-help header from the last operation, if any.
+
+
+
+
+ +
+
+
errorMessage +
Link copied to clipboard
+
+
+
+
var errorMessage: String
The error message.
+
+
+
+
+ +
+
+
httpStatusCode +
Link copied to clipboard
+
+
+
+
var httpStatusCode: Int = 0
The HTTP status code of the last operation.
+
+
+
+
+ +
+
+
isDiscard +
Link copied to clipboard
+
+
+
+
var isDiscard: Boolean = false
Set to true if Akismet has determined that the last checked comment is blatant spam, and you can safely discard it without saving it in any spam queue.
+
+
+
+
+ +
+
+
isVerifiedKey +
Link copied to clipboard
+
+
+
+
var isVerifiedKey: Boolean = false
Check if the API Key has been verified
+
+
+
+
+ +
+
+
logger +
Link copied to clipboard
+
+
+
+
val logger: Logger
The logger instance.
+
+
+
+
+ +
+
+
proTip +
Link copied to clipboard
+
+
+
+
var proTip: String
The x-akismet-pro-tip header from the last operation, if any.
+
+
+
+
+ +
+
+
response +
Link copied to clipboard
+
+
+
+
var response: String
The actual response sent by Akismet from the last operation.
+
+
+
+
+
+
+
+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html new file mode 100644 index 0000000..ec5cf5f --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html @@ -0,0 +1,38 @@ + + + + isDiscard + + +
+
+ + +
+
+
+
+
+
+ +
+

isDiscard

+
+
+ +
+
var isDiscard: Boolean = false
+
+

Set to true if Akismet has determined that the last checked comment is blatant spam, and you can safely discard it without saving it in any spam queue.

See the Akismet API for more details.

See also

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html new file mode 100644 index 0000000..960784c --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html @@ -0,0 +1,38 @@ + + + + isVerifiedKey + + +
+
+ + +
+
+
+
+
+
+ +
+

isVerifiedKey

+
+
+ +
+
var isVerifiedKey: Boolean = false
+
+

Check if the API Key has been verified

See also

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/logger.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/logger.html new file mode 100644 index 0000000..b1cd79c --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/logger.html @@ -0,0 +1,38 @@ + + + + logger + + +
+
+ + +
+
+
+
+
+
+ +
+

logger

+
+
+ +
+
val logger: Logger
+
+

The logger instance.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html new file mode 100644 index 0000000..03151d2 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html @@ -0,0 +1,38 @@ + + + + proTip + + +
+
+ + +
+
+
+
+
+
+ +
+

proTip

+
+
+ +
+
var proTip: String
+
+

The x-akismet-pro-tip header from the last operation, if any.

If the x-akismet-pro-tip header is set to discard, then Akismet has determined that the comment is blatant spam, and you can safely discard it without saving it in any spam queue.

See the Akismet API for more details.

See also

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/reset.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/reset.html new file mode 100644 index 0000000..5fd2a9c --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/reset.html @@ -0,0 +1,38 @@ + + + + reset + + +
+
+ + +
+
+
+
+
+
+ +
+

reset

+
+
+ +
+
fun reset()
+
+

Reset the debugHelp, errorMessage, httpStatusCode, isDiscard, isVerifiedKey, proTip, and response properties.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/response.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/response.html new file mode 100644 index 0000000..01209ad --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/response.html @@ -0,0 +1,38 @@ + + + + response + + +
+
+ + +
+
+
+
+
+
+ +
+

response

+
+
+ +
+
var response: String
+
+

The actual response sent by Akismet from the last operation.

For example: true, false, valid, invalid, etc.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html new file mode 100644 index 0000000..7719c36 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html @@ -0,0 +1,38 @@ + + + + submitHam + + +
+
+ + +
+
+
+
+
+
+ +
+

submitHam

+
+
+ +
+
fun submitHam(comment: AkismetComment): Boolean
+
+

Submit Ham. (False Positives)

This call is intended for the submission of false positives - items that were incorrectly classified as spam by Akismet. It takes identical arguments as comment check and submit spam.

It is very important that the values you submit with this call match those of your comment check calls as closely as possible. In order to learn from its mistakes, Akismet needs to match your missed spam and false positive reports to the original comment-check API calls made when the content was first posted. While it is normal for less information to be available for submit-spam and submit-ham calls (most comment systems and forums will not store all metadata), you should ensure that the values that you do send match those of the original content.

See the Akismet API for more details.

Return

true if the comment was submitted, false otherwise.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html new file mode 100644 index 0000000..534b12c --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html @@ -0,0 +1,38 @@ + + + + submitSpam + + +
+
+ + +
+
+
+
+
+
+ +
+

submitSpam

+
+
+ +
+
fun submitSpam(comment: AkismetComment): Boolean
+
+

Submit Spam. (Missed Spam)

This call is for submitting comments that weren't marked as spam but should have been.

It is very important that the values you submit with this call match those of your comment check calls as closely as possible. In order to learn from its mistakes, Akismet needs to match your missed spam and false positive reports to the original comment-check API calls made when the content was first posted. While it is normal for less information to be available for submit-spam and submit-ham calls (most comment systems and forums will not store all metadata), you should ensure that the values that you do send match those of the original content.

See the Akismet API for more details.

Return

true if the comment was submitted, false otherwise.

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html new file mode 100644 index 0000000..f60cde2 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html @@ -0,0 +1,38 @@ + + + + verifyKey + + +
+
+ + +
+
+
+
+
+
+ +
+

verifyKey

+
+
+ +
+
fun verifyKey(): Boolean
+
+

Key Verification.

Key verification authenticates your key before calling the comment check, submit spam, or submit ham methods. This is the first call that you should make to Akismet and is especially useful if you will have multiple users with their own Akismet subscriptions using your application.

See the Akismet API for more details.

Return

true if the key is valid, false otherwise.

See also

+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/net.thauvin.erik.akismet/index.html b/docs/akismet-kotlin/net.thauvin.erik.akismet/index.html new file mode 100644 index 0000000..0d3b2d6 --- /dev/null +++ b/docs/akismet-kotlin/net.thauvin.erik.akismet/index.html @@ -0,0 +1,73 @@ + + + + net.thauvin.erik.akismet + + +
+
+ + +
+
+
+
+
+
+ +
+

Package net.thauvin.erik.akismet

+
+
+
+
+

Types

+
+
+
+
Akismet +
Link copied to clipboard
+
+
+
+ +
+
open class Akismet(apiKey: String)
+
+
Provides access to the Akismet API.
+
+
+
+
+ +
+
+
AkismetComment +
Link copied to clipboard
+
+
+
+ +
+
open class AkismetComment(userIp: String, userAgent: String)
+
+
A comment to send to Akismet.
+
+
+
+
+
+
+
+
+ +
+
+ + + diff --git a/docs/akismet-kotlin/package-list b/docs/akismet-kotlin/package-list new file mode 100644 index 0000000..342db5c --- /dev/null +++ b/docs/akismet-kotlin/package-list @@ -0,0 +1,64 @@ +$dokka.format:html-v1 +$dokka.linkExtension:html +$dokka.location:net.thauvin.erik.akismet////PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/index.html +$dokka.location:net.thauvin.erik.akismet/Akismet.Companion///PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/index.html +$dokka.location:net.thauvin.erik.akismet/Akismet.Companion/dateToGmt/#java.time.LocalDateTime/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html +$dokka.location:net.thauvin.erik.akismet/Akismet.Companion/dateToGmt/#java.util.Date/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/date-to-gmt.html +$dokka.location:net.thauvin.erik.akismet/Akismet.Companion/jsonComment/#kotlin.String/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-companion/json-comment.html +$dokka.location:net.thauvin.erik.akismet/Akismet///PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/index.html +$dokka.location:net.thauvin.erik.akismet/Akismet/Akismet/#kotlin.String#kotlin.String/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html +$dokka.location:net.thauvin.erik.akismet/Akismet/Akismet/#kotlin.String/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/-akismet.html +$dokka.location:net.thauvin.erik.akismet/Akismet/appUserAgent/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/app-user-agent.html +$dokka.location:net.thauvin.erik.akismet/Akismet/blog/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/blog.html +$dokka.location:net.thauvin.erik.akismet/Akismet/checkComment/#net.thauvin.erik.akismet.AkismetComment#kotlin.Boolean/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/check-comment.html +$dokka.location:net.thauvin.erik.akismet/Akismet/debugHelp/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/debug-help.html +$dokka.location:net.thauvin.erik.akismet/Akismet/errorMessage/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/error-message.html +$dokka.location:net.thauvin.erik.akismet/Akismet/executeMethod/#okhttp3.HttpUrl?#okhttp3.FormBody#kotlin.Boolean/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/execute-method.html +$dokka.location:net.thauvin.erik.akismet/Akismet/httpStatusCode/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/http-status-code.html +$dokka.location:net.thauvin.erik.akismet/Akismet/isDiscard/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-discard.html +$dokka.location:net.thauvin.erik.akismet/Akismet/isVerifiedKey/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/is-verified-key.html +$dokka.location:net.thauvin.erik.akismet/Akismet/logger/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/logger.html +$dokka.location:net.thauvin.erik.akismet/Akismet/proTip/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/pro-tip.html +$dokka.location:net.thauvin.erik.akismet/Akismet/reset/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/reset.html +$dokka.location:net.thauvin.erik.akismet/Akismet/response/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/response.html +$dokka.location:net.thauvin.erik.akismet/Akismet/submitHam/#net.thauvin.erik.akismet.AkismetComment/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-ham.html +$dokka.location:net.thauvin.erik.akismet/Akismet/submitSpam/#net.thauvin.erik.akismet.AkismetComment/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/submit-spam.html +$dokka.location:net.thauvin.erik.akismet/Akismet/verifyKey/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet/verify-key.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion///PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/index.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/ADMIN_ROLE/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-a-d-m-i-n_-r-o-l-e.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_BLOG_POST/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-b-l-o-g_-p-o-s-t.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_COMMENT/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-m-m-e-n-t.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_CONTACT_FORM/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-c-o-n-t-a-c-t_-f-o-r-m.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_FORUM_POST/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-f-o-r-u-m_-p-o-s-t.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_MESSAGE/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-m-e-s-s-a-g-e.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_PINGBACK/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-p-i-n-g-b-a-c-k.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_REPLY/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-r-e-p-l-y.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_SIGNUP/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-s-i-g-n-u-p.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_TRACKBACK/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-r-a-c-k-b-a-c-k.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment.Companion/TYPE_TWEET/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-companion/-t-y-p-e_-t-w-e-e-t.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment///PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/index.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#javax.servlet.http.HttpServletRequest/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/AkismetComment/#kotlin.String#kotlin.String/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/-akismet-comment.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/author/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/authorEmail/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-email.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/authorUrl/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/author-url.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/blogCharset/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-charset.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/blogLang/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/blog-lang.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/content/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/content.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/dateGmt/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/date-gmt.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/equals/#kotlin.Any?/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/equals.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/hashCode/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/hash-code.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/isTest/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/is-test.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/permalink/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/permalink.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/postModifiedGmt/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/post-modified-gmt.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/recheckReason/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/recheck-reason.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/referrer/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/referrer.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/serverEnv/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/server-env.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/toJson/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-json.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/toString/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/to-string.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/type/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/type.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/userAgent/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-agent.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/userIp/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-ip.html +$dokka.location:net.thauvin.erik.akismet/AkismetComment/userRole/#/PointingToDeclaration/akismet-kotlin/net.thauvin.erik.akismet/-akismet-comment/user-role.html +net.thauvin.erik.akismet + diff --git a/docs/images/anchor-copy-button.svg b/docs/images/anchor-copy-button.svg new file mode 100644 index 0000000..bab9d74 --- /dev/null +++ b/docs/images/anchor-copy-button.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/images/arrow_down.svg b/docs/images/arrow_down.svg new file mode 100644 index 0000000..89e7df4 --- /dev/null +++ b/docs/images/arrow_down.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/images/copy-icon.svg b/docs/images/copy-icon.svg new file mode 100644 index 0000000..61440f0 --- /dev/null +++ b/docs/images/copy-icon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/images/copy-successful-icon.svg b/docs/images/copy-successful-icon.svg new file mode 100644 index 0000000..1865f73 --- /dev/null +++ b/docs/images/copy-successful-icon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/images/docs_logo.svg b/docs/images/docs_logo.svg new file mode 100644 index 0000000..7c1e3ae --- /dev/null +++ b/docs/images/docs_logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/docs/images/footer-go-to-link.svg b/docs/images/footer-go-to-link.svg new file mode 100644 index 0000000..0137e22 --- /dev/null +++ b/docs/images/footer-go-to-link.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/docs/images/go-to-top-icon.svg b/docs/images/go-to-top-icon.svg new file mode 100644 index 0000000..d987f3e --- /dev/null +++ b/docs/images/go-to-top-icon.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/docs/images/logo-icon.svg b/docs/images/logo-icon.svg new file mode 100644 index 0000000..1b3b367 --- /dev/null +++ b/docs/images/logo-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..5937efb --- /dev/null +++ b/docs/index.html @@ -0,0 +1,47 @@ + + + + akismet-kotlin + + +
+
+ + +
+
+
+
+
+
+ +
+

akismet-kotlin

+

Akismet for Kotlin/Java, a client library for accessing the Automattic Kismet (Akismet) spam comments filtering service.

package net.thauvin.erik.akismet

A Kotlin/Java library for accessing the Akismet service.

+
+

Packages

+
+
+
+
+
net.thauvin.erik.akismet +
Link copied to clipboard
+
+
+
+
+
+
+
+
+ +
+
+ + + diff --git a/docs/navigation.html b/docs/navigation.html new file mode 100644 index 0000000..0e24462 --- /dev/null +++ b/docs/navigation.html @@ -0,0 +1,13 @@ + + diff --git a/docs/scripts/clipboard.js b/docs/scripts/clipboard.js new file mode 100644 index 0000000..b00ce24 --- /dev/null +++ b/docs/scripts/clipboard.js @@ -0,0 +1,52 @@ +window.addEventListener('load', () => { + document.querySelectorAll('span.copy-icon').forEach(element => { + element.addEventListener('click', (el) => copyElementsContentToClipboard(element)); + }) + + document.querySelectorAll('span.anchor-icon').forEach(element => { + element.addEventListener('click', (el) => { + if(element.hasAttribute('pointing-to')){ + const location = hrefWithoutCurrentlyUsedAnchor() + '#' + element.getAttribute('pointing-to') + copyTextToClipboard(element, location) + } + }); + }) +}) + +const copyElementsContentToClipboard = (element) => { + const selection = window.getSelection(); + const range = document.createRange(); + range.selectNodeContents(element.parentNode.parentNode); + selection.removeAllRanges(); + selection.addRange(range); + + copyAndShowPopup(element, () => selection.removeAllRanges()) +} + +const copyTextToClipboard = (element, text) => { + var textarea = document.createElement("textarea"); + textarea.textContent = text; + textarea.style.position = "fixed"; + document.body.appendChild(textarea); + textarea.select(); + + copyAndShowPopup(element, () => document.body.removeChild(textarea)) +} + +const copyAndShowPopup = (element, after) => { + try { + document.execCommand('copy'); + element.nextElementSibling.classList.add('active-popup'); + setTimeout(() => { + element.nextElementSibling.classList.remove('active-popup'); + }, 1200); + } catch (e) { + console.error('Failed to write to clipboard:', e) + } + finally { + if(after) after() + } +} + +const hrefWithoutCurrentlyUsedAnchor = () => window.location.href.split('#')[0] + diff --git a/docs/scripts/main.js b/docs/scripts/main.js new file mode 100644 index 0000000..029fa9e --- /dev/null +++ b/docs/scripts/main.js @@ -0,0 +1,67 @@ +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=390)}([function(e,t,n){e.exports=n(264)()},function(e,t,n){"use strict";e.exports=n(239)},function(e,t,n){var r; +/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;to;)Q(e,n=r[o++],t[n]);return e},X=function(e){var t=F.call(this,e=x(e,!0));return!(this===W&&o(H,e)&&!o(U,e))&&(!(t||!o(this,e)||!o(H,e)||o(this,A)&&this[A][e])||t)},J=function(e,t){if(e=w(e),t=x(t,!0),e!==W||!o(H,t)||o(U,t)){var n=I(e,t);return!n||!o(H,t)||o(e,A)&&e[A][t]||(n.enumerable=!0),n}},Z=function(e){for(var t,n=z(w(e)),r=[],i=0;n.length>i;)o(H,t=n[i++])||t==A||t==c||r.push(t);return r},ee=function(e){for(var t,n=e===W,r=z(n?U:w(e)),i=[],a=0;r.length>a;)!o(H,t=r[a++])||n&&!o(W,t)||i.push(H[t]);return i};B||(l((R=function(){if(this instanceof R)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),t=function(n){this===W&&t.call(U,n),o(this,A)&&o(this[A],e)&&(this[A][e]=!1),K(this,e,S(1,n))};return i&&G&&K(W,e,{configurable:!0,set:t}),q(e)}).prototype,"toString",(function(){return this._k})),E.f=J,C.f=Q,n(114).f=O.f=Z,n(95).f=X,T.f=ee,i&&!n(111)&&l(W,"propertyIsEnumerable",X,!0),h.f=function(e){return q(d(e))}),a(a.G+a.W+a.F*!B,{Symbol:R});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ne=0;te.length>ne;)d(te[ne++]);for(var re=P(d.store),oe=0;re.length>oe;)v(re[oe++]);a(a.S+a.F*!B,"Symbol",{for:function(e){return o(D,e+="")?D[e]:D[e]=R(e)},keyFor:function(e){if(!$(e))throw TypeError(e+" is not a symbol!");for(var t in D)if(D[t]===e)return t},useSetter:function(){G=!0},useSimple:function(){G=!1}}),a(a.S+a.F*!B,"Object",{create:function(e,t){return void 0===t?k(e):Y(k(e),t)},defineProperty:Q,defineProperties:Y,getOwnPropertyDescriptor:J,getOwnPropertyNames:Z,getOwnPropertySymbols:ee});var ie=u((function(){T.f(1)}));a(a.S+a.F*ie,"Object",{getOwnPropertySymbols:function(e){return T.f(_(e))}}),M&&a(a.S+a.F*(!B||u((function(){var e=R();return"[null]"!=N([e])||"{}"!=N({a:e})||"{}"!=N(Object(e))}))),"JSON",{stringify:function(e){for(var t,n,r=[e],o=1;arguments.length>o;)r.push(arguments[o++]);if(n=t=r[1],(b(t)||void 0!==e)&&!$(e))return m(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!$(t))return t}),r[1]=t,N.apply(M,r)}}),R.prototype[L]||n(59)(R.prototype,L,R.prototype.valueOf),f(R,"Symbol"),f(Math,"Math",!0),f(r.JSON,"JSON",!0)},function(e,t,n){var r=n(10);r(r.S+r.F*!n(30),"Object",{defineProperty:n(39).f})},function(e,t,n){"use strict";n(257);var r=n(27),o=n(135),i=n(30),a=/./.toString,l=function(e){n(42)(RegExp.prototype,"toString",e,!0)};n(31)((function(){return"/a/b"!=a.call({source:"a",flags:"b"})}))?l((function(){var e=r(this);return"/".concat(e.source,"/","flags"in e?e.flags:!i&&e instanceof RegExp?o.call(e):void 0)})):"toString"!=a.name&&l((function(){return a.call(this)}))},function(e,t,n){var r=Date.prototype,o=r.toString,i=r.getTime;new Date(NaN)+""!="Invalid Date"&&n(42)(r,"toString",(function(){var e=i.call(this);return e==e?o.call(this):"Invalid Date"}))},function(e,t,n){n(182)("asyncIterator")},function(e,t,n){var r=n(32),o=n(79),i=n(59),a=n(42),l=n(80),c=function(e,t,n){var u,s,f,p,d=e&c.F,h=e&c.G,v=e&c.S,g=e&c.P,m=e&c.B,y=h?r:v?r[t]||(r[t]={}):(r[t]||{}).prototype,b=h?o:o[t]||(o[t]={}),_=b.prototype||(b.prototype={});for(u in h&&(n=t),n)f=((s=!d&&y&&void 0!==y[u])?y:n)[u],p=m&&s?l(f,r):g&&"function"==typeof f?l(Function.call,f):f,y&&a(y,u,f,e&c.U),b[u]!=f&&i(b,u,p),g&&_[u]!=f&&(_[u]=f)};r.core=o,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t,n){for(var r=n(12),o=n(70),i=n(42),a=n(32),l=n(59),c=n(96),u=n(25),s=u("iterator"),f=u("toStringTag"),p=c.Array,d={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=o(d),v=0;v=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t,n){var r=n(10);r(r.S,"Object",{create:n(83)})},function(e,t,n){var r=n(10),o=n(83),i=n(81),a=n(27),l=n(29),c=n(31),u=n(184),s=(n(32).Reflect||{}).construct,f=c((function(){function e(){}return!(s((function(){}),[],e)instanceof e)})),p=!c((function(){s((function(){}))}));r(r.S+r.F*(f||p),"Reflect",{construct:function(e,t){i(e),a(t);var n=arguments.length<3?e:i(arguments[2]);if(p&&!f)return s(e,t,n);if(e==n){switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3])}var r=[null];return r.push.apply(r,t),new(u.apply(e,r))}var c=n.prototype,d=o(l(c)?c:Object.prototype),h=Function.apply.call(e,d,t);return l(h)?h:d}})},function(e,t,n){var r=n(10);r(r.S,"Object",{setPrototypeOf:n(180).set})},function(e,t,n){var r=n(54),o=n(70);n(252)("keys",(function(){return function(e){return o(r(e))}}))},function(e,t,n){"use strict";var r=n(10),o=n(130)(!1),i=[].indexOf,a=!!i&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n(72)(i)),"Array",{indexOf:function(e){return a?i.apply(this,arguments)||0:o(this,e,arguments[1])}})},function(e,t,n){var r=n(26),o=n(266);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var i={insert:"head",singleton:!1};r(o,i);e.exports=o.locals||{}},function(e,t,n){var r=n(10);r(r.S+r.F,"Object",{assign:n(185)})},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"==typeof btoa){var o=(a=r,l=btoa(unescape(encodeURIComponent(JSON.stringify(a)))),c="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(l),"/*# ".concat(c," */")),i=r.sources.map((function(e){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(e," */")}));return[n].concat(i).concat([o]).join("\n")}var a,l,c;return[n].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var o={};if(r)for(var i=0;i=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})}))},function(e,t,n){var r=n(35),o=n(28),i=n(98),a=n(74),l=n(75),c=function(e,t,n){var u,s,f,p=e&c.F,d=e&c.G,h=e&c.S,v=e&c.P,g=e&c.B,m=e&c.W,y=d?o:o[t]||(o[t]={}),b=y.prototype,_=d?r:h?r[t]:(r[t]||{}).prototype;for(u in d&&(n=t),n)(s=!p&&_&&void 0!==_[u])&&l(y,u)||(f=s?_[u]:n[u],y[u]=d&&"function"!=typeof _[u]?n[u]:g&&s?i(f,r):m&&_[u]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):v&&"function"==typeof f?i(Function.call,f):f,v&&((y.virtual||(y.virtual={}))[u]=f,e&c.R&&b&&!b[u]&&a(b,u,f)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t,n){var r=n(26),o=n(332);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var i={insert:"head",singleton:!1};r(o,i);e.exports=o.locals||{}},function(e,t,n){var r=n(113),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){var r=n(71);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";var r=n(10),o=n(62)(1);r(r.P+r.F*!n(72)([].map,!0),"Array",{map:function(e){return o(this,e,arguments[1])}})},function(e,t,n){var r=n(64);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){e.exports=!n(85)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var r=n(80),o=n(10),i=n(54),a=n(189),l=n(190),c=n(53),u=n(174),s=n(191);o(o.S+o.F*!n(192)((function(e){Array.from(e)})),"Array",{from:function(e){var t,n,o,f,p=i(e),d="function"==typeof this?this:Array,h=arguments.length,v=h>1?arguments[1]:void 0,g=void 0!==v,m=0,y=s(p);if(g&&(v=r(v,h>2?arguments[2]:void 0,2)),null==y||d==Array&&l(y))for(n=new d(t=c(p.length));t>m;m++)u(n,m,g?v(p[m],m):p[m]);else for(f=y.call(p),n=new d;!(o=f.next()).done;m++)u(n,m,g?a(f,v,[o.value,m],!0):o.value);return n.length=m,n}})},function(e,t,n){var r=n(39),o=n(91);e.exports=n(30)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(112),o=n(71);e.exports=function(e){return r(o(e))}},function(e,t,n){"use strict";var r=n(10),o=n(62)(0),i=n(72)([].forEach,!0);r(r.P+r.F*!i,"Array",{forEach:function(e){return o(this,e,arguments[1])}})},function(e,t,n){var r=n(80),o=n(112),i=n(54),a=n(53),l=n(259);e.exports=function(e,t){var n=1==e,c=2==e,u=3==e,s=4==e,f=6==e,p=5==e||f,d=t||l;return function(t,l,h){for(var v,g,m=i(t),y=o(m),b=r(l,h,3),_=a(y.length),w=0,x=n?d(t,_):c?d(t,0):void 0;_>w;w++)if((p||w in y)&&(g=b(v=y[w],w,m),e))if(n)x[w]=g;else if(g)switch(e){case 3:return!0;case 5:return v;case 6:return w;case 2:x.push(v)}else if(s)return!1;return f?-1:u||s?s:x}}},function(e,t,n){var r=n(56),o=n(200),i=n(147),a=Object.defineProperty;t.f=n(57)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){e.exports={default:n(282),__esModule:!0}},function(e,t,n){"use strict";t.__esModule=!0;var r=a(n(304)),o=a(n(308)),i=a(n(205));function a(e){return e&&e.__esModule?e:{default:e}}t.default=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+(void 0===t?"undefined":(0,i.default)(t)));e.prototype=(0,o.default)(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(r.default?(0,r.default)(e,t):e.__proto__=t)}},function(e,t,n){(function(e,r){var o; +/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */(function(){var i="Expected a function",a="__lodash_placeholder__",l=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],c="[object Arguments]",u="[object Array]",s="[object Boolean]",f="[object Date]",p="[object Error]",d="[object Function]",h="[object GeneratorFunction]",v="[object Map]",g="[object Number]",m="[object Object]",y="[object RegExp]",b="[object Set]",_="[object String]",w="[object Symbol]",x="[object WeakMap]",S="[object ArrayBuffer]",k="[object DataView]",O="[object Float32Array]",E="[object Float64Array]",T="[object Int8Array]",C="[object Int16Array]",P="[object Int32Array]",I="[object Uint8Array]",j="[object Uint16Array]",z="[object Uint32Array]",R=/\b__p \+= '';/g,M=/\b(__p \+=) '' \+/g,N=/(__e\(.*?\)|\b__t\)) \+\n'';/g,A=/&(?:amp|lt|gt|quot|#39);/g,L=/[&<>"']/g,F=RegExp(A.source),D=RegExp(L.source),H=/<%-([\s\S]+?)%>/g,U=/<%([\s\S]+?)%>/g,W=/<%=([\s\S]+?)%>/g,B=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,V=/^\w*$/,G=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,K=/[\\^$.*+?()[\]{}|]/g,q=RegExp(K.source),$=/^\s+|\s+$/g,Q=/^\s+/,Y=/\s+$/,X=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,J=/\{\n\/\* \[wrapped with (.+)\] \*/,Z=/,? & /,ee=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,te=/\\(\\)?/g,ne=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,re=/\w*$/,oe=/^[-+]0x[0-9a-f]+$/i,ie=/^0b[01]+$/i,ae=/^\[object .+?Constructor\]$/,le=/^0o[0-7]+$/i,ce=/^(?:0|[1-9]\d*)$/,ue=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,se=/($^)/,fe=/['\n\r\u2028\u2029\\]/g,pe="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",de="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",he="[\\ud800-\\udfff]",ve="["+de+"]",ge="["+pe+"]",me="\\d+",ye="[\\u2700-\\u27bf]",be="[a-z\\xdf-\\xf6\\xf8-\\xff]",_e="[^\\ud800-\\udfff"+de+me+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",we="\\ud83c[\\udffb-\\udfff]",xe="[^\\ud800-\\udfff]",Se="(?:\\ud83c[\\udde6-\\uddff]){2}",ke="[\\ud800-\\udbff][\\udc00-\\udfff]",Oe="[A-Z\\xc0-\\xd6\\xd8-\\xde]",Ee="(?:"+be+"|"+_e+")",Te="(?:"+Oe+"|"+_e+")",Ce="(?:"+ge+"|"+we+")"+"?",Pe="[\\ufe0e\\ufe0f]?"+Ce+("(?:\\u200d(?:"+[xe,Se,ke].join("|")+")[\\ufe0e\\ufe0f]?"+Ce+")*"),Ie="(?:"+[ye,Se,ke].join("|")+")"+Pe,je="(?:"+[xe+ge+"?",ge,Se,ke,he].join("|")+")",ze=RegExp("['’]","g"),Re=RegExp(ge,"g"),Me=RegExp(we+"(?="+we+")|"+je+Pe,"g"),Ne=RegExp([Oe+"?"+be+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[ve,Oe,"$"].join("|")+")",Te+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[ve,Oe+Ee,"$"].join("|")+")",Oe+"?"+Ee+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Oe+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",me,Ie].join("|"),"g"),Ae=RegExp("[\\u200d\\ud800-\\udfff"+pe+"\\ufe0e\\ufe0f]"),Le=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Fe=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],De=-1,He={};He[O]=He[E]=He[T]=He[C]=He[P]=He[I]=He["[object Uint8ClampedArray]"]=He[j]=He[z]=!0,He[c]=He[u]=He[S]=He[s]=He[k]=He[f]=He[p]=He[d]=He[v]=He[g]=He[m]=He[y]=He[b]=He[_]=He[x]=!1;var Ue={};Ue[c]=Ue[u]=Ue[S]=Ue[k]=Ue[s]=Ue[f]=Ue[O]=Ue[E]=Ue[T]=Ue[C]=Ue[P]=Ue[v]=Ue[g]=Ue[m]=Ue[y]=Ue[b]=Ue[_]=Ue[w]=Ue[I]=Ue["[object Uint8ClampedArray]"]=Ue[j]=Ue[z]=!0,Ue[p]=Ue[d]=Ue[x]=!1;var We={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Be=parseFloat,Ve=parseInt,Ge="object"==typeof e&&e&&e.Object===Object&&e,Ke="object"==typeof self&&self&&self.Object===Object&&self,qe=Ge||Ke||Function("return this")(),$e=t&&!t.nodeType&&t,Qe=$e&&"object"==typeof r&&r&&!r.nodeType&&r,Ye=Qe&&Qe.exports===$e,Xe=Ye&&Ge.process,Je=function(){try{var e=Qe&&Qe.require&&Qe.require("util").types;return e||Xe&&Xe.binding&&Xe.binding("util")}catch(e){}}(),Ze=Je&&Je.isArrayBuffer,et=Je&&Je.isDate,tt=Je&&Je.isMap,nt=Je&&Je.isRegExp,rt=Je&&Je.isSet,ot=Je&&Je.isTypedArray;function it(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function at(e,t,n,r){for(var o=-1,i=null==e?0:e.length;++o-1}function pt(e,t,n){for(var r=-1,o=null==e?0:e.length;++r-1;);return n}function Mt(e,t){for(var n=e.length;n--&&wt(t,e[n],0)>-1;);return n}function Nt(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}var At=Et({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Lt=Et({"&":"&","<":"<",">":">",'"':""","'":"'"});function Ft(e){return"\\"+We[e]}function Dt(e){return Ae.test(e)}function Ht(e){var t=-1,n=Array(e.size);return e.forEach((function(e,r){n[++t]=[r,e]})),n}function Ut(e,t){return function(n){return e(t(n))}}function Wt(e,t){for(var n=-1,r=e.length,o=0,i=[];++n",""":'"',"'":"'"});var $t=function e(t){var n,r=(t=null==t?qe:$t.defaults(qe.Object(),t,$t.pick(qe,Fe))).Array,o=t.Date,pe=t.Error,de=t.Function,he=t.Math,ve=t.Object,ge=t.RegExp,me=t.String,ye=t.TypeError,be=r.prototype,_e=de.prototype,we=ve.prototype,xe=t["__core-js_shared__"],Se=_e.toString,ke=we.hasOwnProperty,Oe=0,Ee=(n=/[^.]+$/.exec(xe&&xe.keys&&xe.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",Te=we.toString,Ce=Se.call(ve),Pe=qe._,Ie=ge("^"+Se.call(ke).replace(K,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),je=Ye?t.Buffer:void 0,Me=t.Symbol,Ae=t.Uint8Array,We=je?je.allocUnsafe:void 0,Ge=Ut(ve.getPrototypeOf,ve),Ke=ve.create,$e=we.propertyIsEnumerable,Qe=be.splice,Xe=Me?Me.isConcatSpreadable:void 0,Je=Me?Me.iterator:void 0,yt=Me?Me.toStringTag:void 0,Et=function(){try{var e=ei(ve,"defineProperty");return e({},"",{}),e}catch(e){}}(),Qt=t.clearTimeout!==qe.clearTimeout&&t.clearTimeout,Yt=o&&o.now!==qe.Date.now&&o.now,Xt=t.setTimeout!==qe.setTimeout&&t.setTimeout,Jt=he.ceil,Zt=he.floor,en=ve.getOwnPropertySymbols,tn=je?je.isBuffer:void 0,nn=t.isFinite,rn=be.join,on=Ut(ve.keys,ve),an=he.max,ln=he.min,cn=o.now,un=t.parseInt,sn=he.random,fn=be.reverse,pn=ei(t,"DataView"),dn=ei(t,"Map"),hn=ei(t,"Promise"),vn=ei(t,"Set"),gn=ei(t,"WeakMap"),mn=ei(ve,"create"),yn=gn&&new gn,bn={},_n=Ti(pn),wn=Ti(dn),xn=Ti(hn),Sn=Ti(vn),kn=Ti(gn),On=Me?Me.prototype:void 0,En=On?On.valueOf:void 0,Tn=On?On.toString:void 0;function Cn(e){if(Va(e)&&!Ra(e)&&!(e instanceof zn)){if(e instanceof jn)return e;if(ke.call(e,"__wrapped__"))return Ci(e)}return new jn(e)}var Pn=function(){function e(){}return function(t){if(!Ba(t))return{};if(Ke)return Ke(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function In(){}function jn(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function zn(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Rn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Yn(e,t,n,r,o,i){var a,l=1&t,u=2&t,p=4&t;if(n&&(a=o?n(e,r,o,i):n(e)),void 0!==a)return a;if(!Ba(e))return e;var x=Ra(e);if(x){if(a=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&ke.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!l)return yo(e,a)}else{var R=ri(e),M=R==d||R==h;if(La(e))return fo(e,l);if(R==m||R==c||M&&!o){if(a=u||M?{}:ii(e),!l)return u?function(e,t){return bo(e,ni(e),t)}(e,function(e,t){return e&&bo(t,wl(t),e)}(a,e)):function(e,t){return bo(e,ti(e),t)}(e,Kn(a,e))}else{if(!Ue[R])return o?e:{};a=function(e,t,n){var r=e.constructor;switch(t){case S:return po(e);case s:case f:return new r(+e);case k:return function(e,t){var n=t?po(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case O:case E:case T:case C:case P:case I:case"[object Uint8ClampedArray]":case j:case z:return ho(e,n);case v:return new r;case g:case _:return new r(e);case y:return function(e){var t=new e.constructor(e.source,re.exec(e));return t.lastIndex=e.lastIndex,t}(e);case b:return new r;case w:return o=e,En?ve(En.call(o)):{}}var o}(e,R,l)}}i||(i=new Ln);var N=i.get(e);if(N)return N;i.set(e,a),Qa(e)?e.forEach((function(r){a.add(Yn(r,t,n,r,e,i))})):Ga(e)&&e.forEach((function(r,o){a.set(o,Yn(r,t,n,o,e,i))}));var A=x?void 0:(p?u?qo:Ko:u?wl:_l)(e);return lt(A||e,(function(r,o){A&&(r=e[o=r]),Bn(a,o,Yn(r,t,n,o,e,i))})),a}function Xn(e,t,n){var r=n.length;if(null==e)return!r;for(e=ve(e);r--;){var o=n[r],i=t[o],a=e[o];if(void 0===a&&!(o in e)||!i(a))return!1}return!0}function Jn(e,t,n){if("function"!=typeof e)throw new ye(i);return _i((function(){e.apply(void 0,n)}),t)}function Zn(e,t,n,r){var o=-1,i=ft,a=!0,l=e.length,c=[],u=t.length;if(!l)return c;n&&(t=dt(t,It(n))),r?(i=pt,a=!1):t.length>=200&&(i=zt,a=!1,t=new An(t));e:for(;++o-1},Mn.prototype.set=function(e,t){var n=this.__data__,r=Vn(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this},Nn.prototype.clear=function(){this.size=0,this.__data__={hash:new Rn,map:new(dn||Mn),string:new Rn}},Nn.prototype.delete=function(e){var t=Jo(this,e).delete(e);return this.size-=t?1:0,t},Nn.prototype.get=function(e){return Jo(this,e).get(e)},Nn.prototype.has=function(e){return Jo(this,e).has(e)},Nn.prototype.set=function(e,t){var n=Jo(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this},An.prototype.add=An.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},An.prototype.has=function(e){return this.__data__.has(e)},Ln.prototype.clear=function(){this.__data__=new Mn,this.size=0},Ln.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Ln.prototype.get=function(e){return this.__data__.get(e)},Ln.prototype.has=function(e){return this.__data__.has(e)},Ln.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Mn){var r=n.__data__;if(!dn||r.length<199)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new Nn(r)}return n.set(e,t),this.size=n.size,this};var er=xo(cr),tr=xo(ur,!0);function nr(e,t){var n=!0;return er(e,(function(e,r,o){return n=!!t(e,r,o)})),n}function rr(e,t,n){for(var r=-1,o=e.length;++r0&&n(l)?t>1?ir(l,t-1,n,r,o):ht(o,l):r||(o[o.length]=l)}return o}var ar=So(),lr=So(!0);function cr(e,t){return e&&ar(e,t,_l)}function ur(e,t){return e&&lr(e,t,_l)}function sr(e,t){return st(t,(function(t){return Ha(e[t])}))}function fr(e,t){for(var n=0,r=(t=lo(t,e)).length;null!=e&&nt}function vr(e,t){return null!=e&&ke.call(e,t)}function gr(e,t){return null!=e&&t in ve(e)}function mr(e,t,n){for(var o=n?pt:ft,i=e[0].length,a=e.length,l=a,c=r(a),u=1/0,s=[];l--;){var f=e[l];l&&t&&(f=dt(f,It(t))),u=ln(f.length,u),c[l]=!n&&(t||i>=120&&f.length>=120)?new An(l&&f):void 0}f=e[0];var p=-1,d=c[0];e:for(;++p=l)return c;var u=n[r];return c*("desc"==u?-1:1)}}return e.index-t.index}(e,t,n)}))}function Rr(e,t,n){for(var r=-1,o=t.length,i={};++r-1;)l!==e&&Qe.call(l,c,1),Qe.call(e,c,1);return e}function Nr(e,t){for(var n=e?t.length:0,r=n-1;n--;){var o=t[n];if(n==r||o!==i){var i=o;li(o)?Qe.call(e,o,1):Zr(e,o)}}return e}function Ar(e,t){return e+Zt(sn()*(t-e+1))}function Lr(e,t){var n="";if(!e||t<1||t>9007199254740991)return n;do{t%2&&(n+=e),(t=Zt(t/2))&&(e+=e)}while(t);return n}function Fr(e,t){return wi(vi(e,t,Kl),e+"")}function Dr(e){return Dn(Pl(e))}function Hr(e,t){var n=Pl(e);return ki(n,Qn(t,0,n.length))}function Ur(e,t,n,r){if(!Ba(e))return e;for(var o=-1,i=(t=lo(t,e)).length,a=i-1,l=e;null!=l&&++oi?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=r(i);++o>>1,a=e[i];null!==a&&!Xa(a)&&(n?a<=t:a=200){var u=t?null:Fo(e);if(u)return Bt(u);a=!1,o=zt,c=new An}else c=t?[]:l;e:for(;++r=r?e:Gr(e,t,n)}var so=Qt||function(e){return qe.clearTimeout(e)};function fo(e,t){if(t)return e.slice();var n=e.length,r=We?We(n):new e.constructor(n);return e.copy(r),r}function po(e){var t=new e.constructor(e.byteLength);return new Ae(t).set(new Ae(e)),t}function ho(e,t){var n=t?po(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function vo(e,t){if(e!==t){var n=void 0!==e,r=null===e,o=e==e,i=Xa(e),a=void 0!==t,l=null===t,c=t==t,u=Xa(t);if(!l&&!u&&!i&&e>t||i&&a&&c&&!l&&!u||r&&a&&c||!n&&c||!o)return 1;if(!r&&!i&&!u&&e1?n[o-1]:void 0,a=o>2?n[2]:void 0;for(i=e.length>3&&"function"==typeof i?(o--,i):void 0,a&&ci(n[0],n[1],a)&&(i=o<3?void 0:i,o=1),t=ve(t);++r-1?o[i?t[a]:a]:void 0}}function Co(e){return Go((function(t){var n=t.length,r=n,o=jn.prototype.thru;for(e&&t.reverse();r--;){var a=t[r];if("function"!=typeof a)throw new ye(i);if(o&&!l&&"wrapper"==Qo(a))var l=new jn([],!0)}for(r=l?r:n;++r1&&b.reverse(),f&&ul))return!1;var u=i.get(e),s=i.get(t);if(u&&s)return u==t&&s==e;var f=-1,p=!0,d=2&n?new An:void 0;for(i.set(e,t),i.set(t,e);++f-1&&e%1==0&&e1?"& ":"")+t[r],t=t.join(n>2?", ":" "),e.replace(X,"{\n/* [wrapped with "+t+"] */\n")}(r,function(e,t){return lt(l,(function(n){var r="_."+n[0];t&n[1]&&!ft(e,r)&&e.push(r)})),e.sort()}(function(e){var t=e.match(J);return t?t[1].split(Z):[]}(r),n)))}function Si(e){var t=0,n=0;return function(){var r=cn(),o=16-(r-n);if(n=r,o>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function ki(e,t){var n=-1,r=e.length,o=r-1;for(t=void 0===t?r:t;++n1?e[t-1]:void 0;return n="function"==typeof n?(e.pop(),n):void 0,$i(e,n)}));function ta(e){var t=Cn(e);return t.__chain__=!0,t}function na(e,t){return t(e)}var ra=Go((function(e){var t=e.length,n=t?e[0]:0,r=this.__wrapped__,o=function(t){return $n(t,e)};return!(t>1||this.__actions__.length)&&r instanceof zn&&li(n)?((r=r.slice(n,+n+(t?1:0))).__actions__.push({func:na,args:[o],thisArg:void 0}),new jn(r,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(o)}));var oa=_o((function(e,t,n){ke.call(e,n)?++e[n]:qn(e,n,1)}));var ia=To(zi),aa=To(Ri);function la(e,t){return(Ra(e)?lt:er)(e,Xo(t,3))}function ca(e,t){return(Ra(e)?ct:tr)(e,Xo(t,3))}var ua=_o((function(e,t,n){ke.call(e,n)?e[n].push(t):qn(e,n,[t])}));var sa=Fr((function(e,t,n){var o=-1,i="function"==typeof t,a=Na(e)?r(e.length):[];return er(e,(function(e){a[++o]=i?it(t,e,n):yr(e,t,n)})),a})),fa=_o((function(e,t,n){qn(e,n,t)}));function pa(e,t){return(Ra(e)?dt:Tr)(e,Xo(t,3))}var da=_o((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var ha=Fr((function(e,t){if(null==e)return[];var n=t.length;return n>1&&ci(e,t[0],t[1])?t=[]:n>2&&ci(t[0],t[1],t[2])&&(t=[t[0]]),zr(e,ir(t,1),[])})),va=Yt||function(){return qe.Date.now()};function ga(e,t,n){return t=n?void 0:t,Ho(e,128,void 0,void 0,void 0,void 0,t=e&&null==t?e.length:t)}function ma(e,t){var n;if("function"!=typeof t)throw new ye(i);return e=rl(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=void 0),n}}var ya=Fr((function(e,t,n){var r=1;if(n.length){var o=Wt(n,Yo(ya));r|=32}return Ho(e,r,t,n,o)})),ba=Fr((function(e,t,n){var r=3;if(n.length){var o=Wt(n,Yo(ba));r|=32}return Ho(t,r,e,n,o)}));function _a(e,t,n){var r,o,a,l,c,u,s=0,f=!1,p=!1,d=!0;if("function"!=typeof e)throw new ye(i);function h(t){var n=r,i=o;return r=o=void 0,s=t,l=e.apply(i,n)}function v(e){return s=e,c=_i(m,t),f?h(e):l}function g(e){var n=e-u;return void 0===u||n>=t||n<0||p&&e-s>=a}function m(){var e=va();if(g(e))return y(e);c=_i(m,function(e){var n=t-(e-u);return p?ln(n,a-(e-s)):n}(e))}function y(e){return c=void 0,d&&r?h(e):(r=o=void 0,l)}function b(){var e=va(),n=g(e);if(r=arguments,o=this,u=e,n){if(void 0===c)return v(u);if(p)return so(c),c=_i(m,t),h(u)}return void 0===c&&(c=_i(m,t)),l}return t=il(t)||0,Ba(n)&&(f=!!n.leading,a=(p="maxWait"in n)?an(il(n.maxWait)||0,t):a,d="trailing"in n?!!n.trailing:d),b.cancel=function(){void 0!==c&&so(c),s=0,r=u=o=c=void 0},b.flush=function(){return void 0===c?l:y(va())},b}var wa=Fr((function(e,t){return Jn(e,1,t)})),xa=Fr((function(e,t,n){return Jn(e,il(t)||0,n)}));function Sa(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new ye(i);var n=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=n.cache;if(i.has(o))return i.get(o);var a=e.apply(this,r);return n.cache=i.set(o,a)||i,a};return n.cache=new(Sa.Cache||Nn),n}function ka(e){if("function"!=typeof e)throw new ye(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}Sa.Cache=Nn;var Oa=co((function(e,t){var n=(t=1==t.length&&Ra(t[0])?dt(t[0],It(Xo())):dt(ir(t,1),It(Xo()))).length;return Fr((function(r){for(var o=-1,i=ln(r.length,n);++o=t})),za=br(function(){return arguments}())?br:function(e){return Va(e)&&ke.call(e,"callee")&&!$e.call(e,"callee")},Ra=r.isArray,Ma=Ze?It(Ze):function(e){return Va(e)&&dr(e)==S};function Na(e){return null!=e&&Wa(e.length)&&!Ha(e)}function Aa(e){return Va(e)&&Na(e)}var La=tn||ic,Fa=et?It(et):function(e){return Va(e)&&dr(e)==f};function Da(e){if(!Va(e))return!1;var t=dr(e);return t==p||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!qa(e)}function Ha(e){if(!Ba(e))return!1;var t=dr(e);return t==d||t==h||"[object AsyncFunction]"==t||"[object Proxy]"==t}function Ua(e){return"number"==typeof e&&e==rl(e)}function Wa(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Ba(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Va(e){return null!=e&&"object"==typeof e}var Ga=tt?It(tt):function(e){return Va(e)&&ri(e)==v};function Ka(e){return"number"==typeof e||Va(e)&&dr(e)==g}function qa(e){if(!Va(e)||dr(e)!=m)return!1;var t=Ge(e);if(null===t)return!0;var n=ke.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Se.call(n)==Ce}var $a=nt?It(nt):function(e){return Va(e)&&dr(e)==y};var Qa=rt?It(rt):function(e){return Va(e)&&ri(e)==b};function Ya(e){return"string"==typeof e||!Ra(e)&&Va(e)&&dr(e)==_}function Xa(e){return"symbol"==typeof e||Va(e)&&dr(e)==w}var Ja=ot?It(ot):function(e){return Va(e)&&Wa(e.length)&&!!He[dr(e)]};var Za=No(Er),el=No((function(e,t){return e<=t}));function tl(e){if(!e)return[];if(Na(e))return Ya(e)?Kt(e):yo(e);if(Je&&e[Je])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Je]());var t=ri(e);return(t==v?Ht:t==b?Bt:Pl)(e)}function nl(e){return e?(e=il(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function rl(e){var t=nl(e),n=t%1;return t==t?n?t-n:t:0}function ol(e){return e?Qn(rl(e),0,4294967295):0}function il(e){if("number"==typeof e)return e;if(Xa(e))return NaN;if(Ba(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ba(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace($,"");var n=ie.test(e);return n||le.test(e)?Ve(e.slice(2),n?2:8):oe.test(e)?NaN:+e}function al(e){return bo(e,wl(e))}function ll(e){return null==e?"":Xr(e)}var cl=wo((function(e,t){if(pi(t)||Na(t))bo(t,_l(t),e);else for(var n in t)ke.call(t,n)&&Bn(e,n,t[n])})),ul=wo((function(e,t){bo(t,wl(t),e)})),sl=wo((function(e,t,n,r){bo(t,wl(t),e,r)})),fl=wo((function(e,t,n,r){bo(t,_l(t),e,r)})),pl=Go($n);var dl=Fr((function(e,t){e=ve(e);var n=-1,r=t.length,o=r>2?t[2]:void 0;for(o&&ci(t[0],t[1],o)&&(r=1);++n1),t})),bo(e,qo(e),n),r&&(n=Yn(n,7,Bo));for(var o=t.length;o--;)Zr(n,t[o]);return n}));var Ol=Go((function(e,t){return null==e?{}:function(e,t){return Rr(e,t,(function(t,n){return gl(e,n)}))}(e,t)}));function El(e,t){if(null==e)return{};var n=dt(qo(e),(function(e){return[e]}));return t=Xo(t),Rr(e,n,(function(e,n){return t(e,n[0])}))}var Tl=Do(_l),Cl=Do(wl);function Pl(e){return null==e?[]:jt(e,_l(e))}var Il=Oo((function(e,t,n){return t=t.toLowerCase(),e+(n?jl(t):t)}));function jl(e){return Dl(ll(e).toLowerCase())}function zl(e){return(e=ll(e))&&e.replace(ue,At).replace(Re,"")}var Rl=Oo((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Ml=Oo((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Nl=ko("toLowerCase");var Al=Oo((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var Ll=Oo((function(e,t,n){return e+(n?" ":"")+Dl(t)}));var Fl=Oo((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),Dl=ko("toUpperCase");function Hl(e,t,n){return e=ll(e),void 0===(t=n?void 0:t)?function(e){return Le.test(e)}(e)?function(e){return e.match(Ne)||[]}(e):function(e){return e.match(ee)||[]}(e):e.match(t)||[]}var Ul=Fr((function(e,t){try{return it(e,void 0,t)}catch(e){return Da(e)?e:new pe(e)}})),Wl=Go((function(e,t){return lt(t,(function(t){t=Ei(t),qn(e,t,ya(e[t],e))})),e}));function Bl(e){return function(){return e}}var Vl=Co(),Gl=Co(!0);function Kl(e){return e}function ql(e){return Sr("function"==typeof e?e:Yn(e,1))}var $l=Fr((function(e,t){return function(n){return yr(n,e,t)}})),Ql=Fr((function(e,t){return function(n){return yr(e,n,t)}}));function Yl(e,t,n){var r=_l(t),o=sr(t,r);null!=n||Ba(t)&&(o.length||!r.length)||(n=t,t=e,e=this,o=sr(t,_l(t)));var i=!(Ba(n)&&"chain"in n&&!n.chain),a=Ha(e);return lt(o,(function(n){var r=t[n];e[n]=r,a&&(e.prototype[n]=function(){var t=this.__chain__;if(i||t){var n=e(this.__wrapped__),o=n.__actions__=yo(this.__actions__);return o.push({func:r,args:arguments,thisArg:e}),n.__chain__=t,n}return r.apply(e,ht([this.value()],arguments))})})),e}function Xl(){}var Jl=zo(dt),Zl=zo(ut),ec=zo(mt);function tc(e){return ui(e)?Ot(Ei(e)):function(e){return function(t){return fr(t,e)}}(e)}var nc=Mo(),rc=Mo(!0);function oc(){return[]}function ic(){return!1}var ac=jo((function(e,t){return e+t}),0),lc=Lo("ceil"),cc=jo((function(e,t){return e/t}),1),uc=Lo("floor");var sc,fc=jo((function(e,t){return e*t}),1),pc=Lo("round"),dc=jo((function(e,t){return e-t}),0);return Cn.after=function(e,t){if("function"!=typeof t)throw new ye(i);return e=rl(e),function(){if(--e<1)return t.apply(this,arguments)}},Cn.ary=ga,Cn.assign=cl,Cn.assignIn=ul,Cn.assignInWith=sl,Cn.assignWith=fl,Cn.at=pl,Cn.before=ma,Cn.bind=ya,Cn.bindAll=Wl,Cn.bindKey=ba,Cn.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Ra(e)?e:[e]},Cn.chain=ta,Cn.chunk=function(e,t,n){t=(n?ci(e,t,n):void 0===t)?1:an(rl(t),0);var o=null==e?0:e.length;if(!o||t<1)return[];for(var i=0,a=0,l=r(Jt(o/t));io?0:o+n),(r=void 0===r||r>o?o:rl(r))<0&&(r+=o),r=n>r?0:ol(r);n>>0)?(e=ll(e))&&("string"==typeof t||null!=t&&!$a(t))&&!(t=Xr(t))&&Dt(e)?uo(Kt(e),0,n):e.split(t,n):[]},Cn.spread=function(e,t){if("function"!=typeof e)throw new ye(i);return t=null==t?0:an(rl(t),0),Fr((function(n){var r=n[t],o=uo(n,0,t);return r&&ht(o,r),it(e,this,o)}))},Cn.tail=function(e){var t=null==e?0:e.length;return t?Gr(e,1,t):[]},Cn.take=function(e,t,n){return e&&e.length?Gr(e,0,(t=n||void 0===t?1:rl(t))<0?0:t):[]},Cn.takeRight=function(e,t,n){var r=null==e?0:e.length;return r?Gr(e,(t=r-(t=n||void 0===t?1:rl(t)))<0?0:t,r):[]},Cn.takeRightWhile=function(e,t){return e&&e.length?to(e,Xo(t,3),!1,!0):[]},Cn.takeWhile=function(e,t){return e&&e.length?to(e,Xo(t,3)):[]},Cn.tap=function(e,t){return t(e),e},Cn.throttle=function(e,t,n){var r=!0,o=!0;if("function"!=typeof e)throw new ye(i);return Ba(n)&&(r="leading"in n?!!n.leading:r,o="trailing"in n?!!n.trailing:o),_a(e,t,{leading:r,maxWait:t,trailing:o})},Cn.thru=na,Cn.toArray=tl,Cn.toPairs=Tl,Cn.toPairsIn=Cl,Cn.toPath=function(e){return Ra(e)?dt(e,Ei):Xa(e)?[e]:yo(Oi(ll(e)))},Cn.toPlainObject=al,Cn.transform=function(e,t,n){var r=Ra(e),o=r||La(e)||Ja(e);if(t=Xo(t,4),null==n){var i=e&&e.constructor;n=o?r?new i:[]:Ba(e)&&Ha(i)?Pn(Ge(e)):{}}return(o?lt:cr)(e,(function(e,r,o){return t(n,e,r,o)})),n},Cn.unary=function(e){return ga(e,1)},Cn.union=Vi,Cn.unionBy=Gi,Cn.unionWith=Ki,Cn.uniq=function(e){return e&&e.length?Jr(e):[]},Cn.uniqBy=function(e,t){return e&&e.length?Jr(e,Xo(t,2)):[]},Cn.uniqWith=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Jr(e,void 0,t):[]},Cn.unset=function(e,t){return null==e||Zr(e,t)},Cn.unzip=qi,Cn.unzipWith=$i,Cn.update=function(e,t,n){return null==e?e:eo(e,t,ao(n))},Cn.updateWith=function(e,t,n,r){return r="function"==typeof r?r:void 0,null==e?e:eo(e,t,ao(n),r)},Cn.values=Pl,Cn.valuesIn=function(e){return null==e?[]:jt(e,wl(e))},Cn.without=Qi,Cn.words=Hl,Cn.wrap=function(e,t){return Ea(ao(t),e)},Cn.xor=Yi,Cn.xorBy=Xi,Cn.xorWith=Ji,Cn.zip=Zi,Cn.zipObject=function(e,t){return oo(e||[],t||[],Bn)},Cn.zipObjectDeep=function(e,t){return oo(e||[],t||[],Ur)},Cn.zipWith=ea,Cn.entries=Tl,Cn.entriesIn=Cl,Cn.extend=ul,Cn.extendWith=sl,Yl(Cn,Cn),Cn.add=ac,Cn.attempt=Ul,Cn.camelCase=Il,Cn.capitalize=jl,Cn.ceil=lc,Cn.clamp=function(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=il(n))==n?n:0),void 0!==t&&(t=(t=il(t))==t?t:0),Qn(il(e),t,n)},Cn.clone=function(e){return Yn(e,4)},Cn.cloneDeep=function(e){return Yn(e,5)},Cn.cloneDeepWith=function(e,t){return Yn(e,5,t="function"==typeof t?t:void 0)},Cn.cloneWith=function(e,t){return Yn(e,4,t="function"==typeof t?t:void 0)},Cn.conformsTo=function(e,t){return null==t||Xn(e,t,_l(t))},Cn.deburr=zl,Cn.defaultTo=function(e,t){return null==e||e!=e?t:e},Cn.divide=cc,Cn.endsWith=function(e,t,n){e=ll(e),t=Xr(t);var r=e.length,o=n=void 0===n?r:Qn(rl(n),0,r);return(n-=t.length)>=0&&e.slice(n,o)==t},Cn.eq=Pa,Cn.escape=function(e){return(e=ll(e))&&D.test(e)?e.replace(L,Lt):e},Cn.escapeRegExp=function(e){return(e=ll(e))&&q.test(e)?e.replace(K,"\\$&"):e},Cn.every=function(e,t,n){var r=Ra(e)?ut:nr;return n&&ci(e,t,n)&&(t=void 0),r(e,Xo(t,3))},Cn.find=ia,Cn.findIndex=zi,Cn.findKey=function(e,t){return bt(e,Xo(t,3),cr)},Cn.findLast=aa,Cn.findLastIndex=Ri,Cn.findLastKey=function(e,t){return bt(e,Xo(t,3),ur)},Cn.floor=uc,Cn.forEach=la,Cn.forEachRight=ca,Cn.forIn=function(e,t){return null==e?e:ar(e,Xo(t,3),wl)},Cn.forInRight=function(e,t){return null==e?e:lr(e,Xo(t,3),wl)},Cn.forOwn=function(e,t){return e&&cr(e,Xo(t,3))},Cn.forOwnRight=function(e,t){return e&&ur(e,Xo(t,3))},Cn.get=vl,Cn.gt=Ia,Cn.gte=ja,Cn.has=function(e,t){return null!=e&&oi(e,t,vr)},Cn.hasIn=gl,Cn.head=Ni,Cn.identity=Kl,Cn.includes=function(e,t,n,r){e=Na(e)?e:Pl(e),n=n&&!r?rl(n):0;var o=e.length;return n<0&&(n=an(o+n,0)),Ya(e)?n<=o&&e.indexOf(t,n)>-1:!!o&&wt(e,t,n)>-1},Cn.indexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=null==n?0:rl(n);return o<0&&(o=an(r+o,0)),wt(e,t,o)},Cn.inRange=function(e,t,n){return t=nl(t),void 0===n?(n=t,t=0):n=nl(n),function(e,t,n){return e>=ln(t,n)&&e=-9007199254740991&&e<=9007199254740991},Cn.isSet=Qa,Cn.isString=Ya,Cn.isSymbol=Xa,Cn.isTypedArray=Ja,Cn.isUndefined=function(e){return void 0===e},Cn.isWeakMap=function(e){return Va(e)&&ri(e)==x},Cn.isWeakSet=function(e){return Va(e)&&"[object WeakSet]"==dr(e)},Cn.join=function(e,t){return null==e?"":rn.call(e,t)},Cn.kebabCase=Rl,Cn.last=Di,Cn.lastIndexOf=function(e,t,n){var r=null==e?0:e.length;if(!r)return-1;var o=r;return void 0!==n&&(o=(o=rl(n))<0?an(r+o,0):ln(o,r-1)),t==t?function(e,t,n){for(var r=n+1;r--;)if(e[r]===t)return r;return r}(e,t,o):_t(e,St,o,!0)},Cn.lowerCase=Ml,Cn.lowerFirst=Nl,Cn.lt=Za,Cn.lte=el,Cn.max=function(e){return e&&e.length?rr(e,Kl,hr):void 0},Cn.maxBy=function(e,t){return e&&e.length?rr(e,Xo(t,2),hr):void 0},Cn.mean=function(e){return kt(e,Kl)},Cn.meanBy=function(e,t){return kt(e,Xo(t,2))},Cn.min=function(e){return e&&e.length?rr(e,Kl,Er):void 0},Cn.minBy=function(e,t){return e&&e.length?rr(e,Xo(t,2),Er):void 0},Cn.stubArray=oc,Cn.stubFalse=ic,Cn.stubObject=function(){return{}},Cn.stubString=function(){return""},Cn.stubTrue=function(){return!0},Cn.multiply=fc,Cn.nth=function(e,t){return e&&e.length?jr(e,rl(t)):void 0},Cn.noConflict=function(){return qe._===this&&(qe._=Pe),this},Cn.noop=Xl,Cn.now=va,Cn.pad=function(e,t,n){e=ll(e);var r=(t=rl(t))?Gt(e):0;if(!t||r>=t)return e;var o=(t-r)/2;return Ro(Zt(o),n)+e+Ro(Jt(o),n)},Cn.padEnd=function(e,t,n){e=ll(e);var r=(t=rl(t))?Gt(e):0;return t&&rt){var r=e;e=t,t=r}if(n||e%1||t%1){var o=sn();return ln(e+o*(t-e+Be("1e-"+((o+"").length-1))),t)}return Ar(e,t)},Cn.reduce=function(e,t,n){var r=Ra(e)?vt:Tt,o=arguments.length<3;return r(e,Xo(t,4),n,o,er)},Cn.reduceRight=function(e,t,n){var r=Ra(e)?gt:Tt,o=arguments.length<3;return r(e,Xo(t,4),n,o,tr)},Cn.repeat=function(e,t,n){return t=(n?ci(e,t,n):void 0===t)?1:rl(t),Lr(ll(e),t)},Cn.replace=function(){var e=arguments,t=ll(e[0]);return e.length<3?t:t.replace(e[1],e[2])},Cn.result=function(e,t,n){var r=-1,o=(t=lo(t,e)).length;for(o||(o=1,e=void 0);++r9007199254740991)return[];var n=4294967295,r=ln(e,4294967295);e-=4294967295;for(var o=Pt(r,t=Xo(t));++n=i)return e;var l=n-Gt(r);if(l<1)return r;var c=a?uo(a,0,l).join(""):e.slice(0,l);if(void 0===o)return c+r;if(a&&(l+=c.length-l),$a(o)){if(e.slice(l).search(o)){var u,s=c;for(o.global||(o=ge(o.source,ll(re.exec(o))+"g")),o.lastIndex=0;u=o.exec(s);)var f=u.index;c=c.slice(0,void 0===f?l:f)}}else if(e.indexOf(Xr(o),l)!=l){var p=c.lastIndexOf(o);p>-1&&(c=c.slice(0,p))}return c+r},Cn.unescape=function(e){return(e=ll(e))&&F.test(e)?e.replace(A,qt):e},Cn.uniqueId=function(e){var t=++Oe;return ll(e)+t},Cn.upperCase=Fl,Cn.upperFirst=Dl,Cn.each=la,Cn.eachRight=ca,Cn.first=Ni,Yl(Cn,(sc={},cr(Cn,(function(e,t){ke.call(Cn.prototype,t)||(sc[t]=e)})),sc),{chain:!1}),Cn.VERSION="4.17.19",lt(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){Cn[e].placeholder=Cn})),lt(["drop","take"],(function(e,t){zn.prototype[e]=function(n){n=void 0===n?1:an(rl(n),0);var r=this.__filtered__&&!t?new zn(this):this.clone();return r.__filtered__?r.__takeCount__=ln(n,r.__takeCount__):r.__views__.push({size:ln(n,4294967295),type:e+(r.__dir__<0?"Right":"")}),r},zn.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),lt(["filter","map","takeWhile"],(function(e,t){var n=t+1,r=1==n||3==n;zn.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Xo(e,3),type:n}),t.__filtered__=t.__filtered__||r,t}})),lt(["head","last"],(function(e,t){var n="take"+(t?"Right":"");zn.prototype[e]=function(){return this[n](1).value()[0]}})),lt(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");zn.prototype[e]=function(){return this.__filtered__?new zn(this):this[n](1)}})),zn.prototype.compact=function(){return this.filter(Kl)},zn.prototype.find=function(e){return this.filter(e).head()},zn.prototype.findLast=function(e){return this.reverse().find(e)},zn.prototype.invokeMap=Fr((function(e,t){return"function"==typeof e?new zn(this):this.map((function(n){return yr(n,e,t)}))})),zn.prototype.reject=function(e){return this.filter(ka(Xo(e)))},zn.prototype.slice=function(e,t){e=rl(e);var n=this;return n.__filtered__&&(e>0||t<0)?new zn(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),void 0!==t&&(n=(t=rl(t))<0?n.dropRight(-t):n.take(t-e)),n)},zn.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},zn.prototype.toArray=function(){return this.take(4294967295)},cr(zn.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),r=/^(?:head|last)$/.test(t),o=Cn[r?"take"+("last"==t?"Right":""):t],i=r||/^find/.test(t);o&&(Cn.prototype[t]=function(){var t=this.__wrapped__,a=r?[1]:arguments,l=t instanceof zn,c=a[0],u=l||Ra(t),s=function(e){var t=o.apply(Cn,ht([e],a));return r&&f?t[0]:t};u&&n&&"function"==typeof c&&1!=c.length&&(l=u=!1);var f=this.__chain__,p=!!this.__actions__.length,d=i&&!f,h=l&&!p;if(!i&&u){t=h?t:new zn(this);var v=e.apply(t,a);return v.__actions__.push({func:na,args:[s],thisArg:void 0}),new jn(v,f)}return d&&h?e.apply(this,a):(v=this.thru(s),d?r?v.value()[0]:v.value():v)})})),lt(["pop","push","shift","sort","splice","unshift"],(function(e){var t=be[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",r=/^(?:pop|shift)$/.test(e);Cn.prototype[e]=function(){var e=arguments;if(r&&!this.__chain__){var o=this.value();return t.apply(Ra(o)?o:[],e)}return this[n]((function(n){return t.apply(Ra(n)?n:[],e)}))}})),cr(zn.prototype,(function(e,t){var n=Cn[t];if(n){var r=n.name+"";ke.call(bn,r)||(bn[r]=[]),bn[r].push({name:t,func:n})}})),bn[Po(void 0,2).name]=[{name:"wrapper",func:void 0}],zn.prototype.clone=function(){var e=new zn(this.__wrapped__);return e.__actions__=yo(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=yo(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=yo(this.__views__),e},zn.prototype.reverse=function(){if(this.__filtered__){var e=new zn(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},zn.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Ra(e),r=t<0,o=n?e.length:0,i=function(e,t,n){var r=-1,o=n.length;for(;++r=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}},Cn.prototype.plant=function(e){for(var t,n=this;n instanceof In;){var r=Ci(n);r.__index__=0,r.__values__=void 0,t?o.__wrapped__=r:t=r;var o=r;n=n.__wrapped__}return o.__wrapped__=e,t},Cn.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof zn){var t=e;return this.__actions__.length&&(t=new zn(this)),(t=t.reverse()).__actions__.push({func:na,args:[Bi],thisArg:void 0}),new jn(t,this.__chain__)}return this.thru(Bi)},Cn.prototype.toJSON=Cn.prototype.valueOf=Cn.prototype.value=function(){return no(this.__wrapped__,this.__actions__)},Cn.prototype.first=Cn.prototype.head,Je&&(Cn.prototype[Je]=function(){return this}),Cn}();qe._=$t,void 0===(o=function(){return $t}.call(t,n,t,r))||(r.exports=o)}).call(this)}).call(this,n(108),n(243)(e))},function(e,t,n){var r=n(26),o=n(335);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var i={insert:"head",singleton:!1};r(o,i);e.exports=o.locals||{}},function(e,t,n){var r=n(26),o=n(376);"string"==typeof(o=o.__esModule?o.default:o)&&(o=[[e.i,o,""]]);var i={insert:"head",singleton:!1};r(o,i);e.exports=o.locals||{}},function(e,t,n){var r=n(173),o=n(132);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var r=n(31);e.exports=function(e,t){return!!e&&r((function(){t?e.call(null,(function(){}),1):e.call(null)}))}},function(e,t,n){"use strict";var r=n(27),o=n(54),i=n(53),a=n(113),l=n(138),c=n(139),u=Math.max,s=Math.min,f=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,d=/\$([$&`']|\d\d?)/g;n(140)("replace",2,(function(e,t,n,h){return[function(r,o){var i=e(this),a=null==r?void 0:r[t];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(e,t){var o=h(n,e,this,t);if(o.done)return o.value;var f=r(e),p=String(this),d="function"==typeof t;d||(t=String(t));var g=f.global;if(g){var m=f.unicode;f.lastIndex=0}for(var y=[];;){var b=c(f,p);if(null===b)break;if(y.push(b),!g)break;""===String(b[0])&&(f.lastIndex=l(p,i(f.lastIndex),m))}for(var _,w="",x=0,S=0;S=x&&(w+=p.slice(x,O)+I,x=O+k.length)}return w+p.slice(x)}];function v(e,t,r,i,a,l){var c=r+e.length,u=i.length,s=d;return void 0!==a&&(a=o(a),s=p),n.call(l,s,(function(n,o){var l;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,r);case"'":return t.slice(c);case"<":l=a[o.slice(1,-1)];break;default:var s=+o;if(0===s)return n;if(s>u){var p=f(s/10);return 0===p?n:p<=u?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):n}l=i[s-1]}return void 0===l?"":l}))}}))},function(e,t,n){var r=n(63),o=n(121);e.exports=n(57)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(202),o=n(148);e.exports=function(e){return r(o(e))}},function(e,t,n){(function(t){function n(e){try{if(!t.localStorage)return!1}catch(e){return!1}var n=t.localStorage[e];return null!=n&&"true"===String(n).toLowerCase()}e.exports=function(e,t){if(n("noDeprecation"))return e;var r=!1;return function(){if(!r){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}}}).call(this,n(108))},function(e,t,n){var r=n(10);r(r.S+r.F*!n(30),"Object",{defineProperties:n(172)})},function(e,t){var n=e.exports={version:"2.6.11"};"number"==typeof __e&&(__e=n)},function(e,t,n){var r=n(81);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){var r=n(10),o=n(249),i=n(60),a=n(94),l=n(174);r(r.S,"Object",{getOwnPropertyDescriptors:function(e){for(var t,n,r=i(e),c=a.f,u=o(r),s={},f=0;u.length>f;)void 0!==(n=c(r,t=u[f++]))&&l(s,t,n);return s}})},function(e,t,n){var r=n(27),o=n(172),i=n(132),a=n(131)("IE_PROTO"),l=function(){},c=function(){var e,t=n(171)("iframe"),r=i.length;for(t.style.display="none",n(251).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("