gina 0.7.2 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (633) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +40 -40
  3. package/ROADMAP.md +1 -0
  4. package/bin/cli +29 -0
  5. package/bin/cmd +34 -25
  6. package/bin/gina +55 -15
  7. package/framework/v0.7.3/VERSION +1 -0
  8. package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/js/gina.js +44 -8
  9. package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/js/gina.min.js +602 -602
  10. package/framework/v0.7.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  11. package/framework/v0.7.3/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  12. package/framework/{v0.7.2 → v0.7.3}/core/config.js +5 -0
  13. package/framework/{v0.7.2 → v0.7.3}/core/controller/controller.js +39 -6
  14. package/framework/{v0.7.2 → v0.7.3}/core/controller/controller.render-swig.js +14 -1
  15. package/framework/v0.7.3/core/controller/preload-hints.js +230 -0
  16. package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/validator/src/main.js +26 -4
  17. package/framework/{v0.7.2 → v0.7.3}/core/server.js +181 -19
  18. package/framework/{v0.7.2 → v0.7.3}/core/template/conf/templates.json +2 -1
  19. package/framework/{v0.7.2 → v0.7.3}/lib/cmd/connector/add.js +1 -1
  20. package/framework/{v0.7.2 → v0.7.3}/lib/cmd/connector/help.txt +6 -5
  21. package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/help.txt +5 -1
  22. package/framework/v0.7.3/lib/cmd/framework/inc/listen-error.js +217 -0
  23. package/framework/v0.7.3/lib/cmd/framework/inc/ps-titles.js +193 -0
  24. package/framework/{v0.7.2 → v0.7.3}/lib/cmd/gina-framework.1.md +2 -0
  25. package/framework/{v0.7.2 → v0.7.3}/lib/cmd/gina.1.md +4 -0
  26. package/framework/{v0.7.2 → v0.7.3}/package.json +1 -1
  27. package/gna.js +4 -4
  28. package/llms.txt +5 -5
  29. package/package.json +3 -3
  30. package/schema/settings.json +5 -0
  31. package/types/index.d.ts +1 -0
  32. package/utils/helper.js +33 -0
  33. package/framework/v0.7.2/VERSION +0 -1
  34. package/framework/v0.7.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.br +0 -0
  35. package/framework/v0.7.2/core/asset/plugin/dist/vendor/gina/js/gina.min.js.gz +0 -0
  36. package/framework/v0.7.2/lib/cmd/framework/inc/ps-titles.js +0 -113
  37. /package/framework/{v0.7.2 → v0.7.3}/AUTHORS +0 -0
  38. /package/framework/{v0.7.2 → v0.7.3}/LICENSE +0 -0
  39. /package/framework/{v0.7.2 → v0.7.3}/core/asset/html/nolayout.html +0 -0
  40. /package/framework/{v0.7.2 → v0.7.3}/core/asset/html/static.html +0 -0
  41. /package/framework/{v0.7.2 → v0.7.3}/core/asset/img/android-chrome-192x192.png +0 -0
  42. /package/framework/{v0.7.2 → v0.7.3}/core/asset/img/android-chrome-512x512.png +0 -0
  43. /package/framework/{v0.7.2 → v0.7.3}/core/asset/img/apple-touch-icon.png +0 -0
  44. /package/framework/{v0.7.2 → v0.7.3}/core/asset/img/favicon-16x16.png +0 -0
  45. /package/framework/{v0.7.2 → v0.7.3}/core/asset/img/favicon-32x32.png +0 -0
  46. /package/framework/{v0.7.2 → v0.7.3}/core/asset/img/favicon.ico +0 -0
  47. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/README.md +0 -0
  48. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.css +0 -0
  49. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/beemaster/beemaster.js +0 -0
  50. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/beemaster/index.html +0 -0
  51. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  52. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.br +0 -0
  53. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/css/gina.min.css.gz +0 -0
  54. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html +0 -0
  55. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.br +0 -0
  56. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/html/statusbar.html.gz +0 -0
  57. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/inspector/have_heart_one-webfont.woff2 +0 -0
  58. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/inspector/index.html +0 -0
  59. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.css +0 -0
  60. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/inspector/inspector.js +0 -0
  61. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/inspector/logo.svg +0 -0
  62. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -0
  63. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.br +0 -0
  64. /package/framework/{v0.7.2 → v0.7.3}/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.gz +0 -0
  65. /package/framework/{v0.7.2 → v0.7.3}/core/config.requirements-anchor.js +0 -0
  66. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/ai/index.js +0 -0
  67. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/ai/lib/connector.js +0 -0
  68. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/couchbase/index.js +0 -0
  69. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/couchbase/lib/connector.js +0 -0
  70. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  71. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/couchbase/lib/connector.v4.js +0 -0
  72. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/couchbase/lib/n1ql.js +0 -0
  73. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/couchbase/lib/session-store.js +0 -0
  74. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  75. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  76. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/couchbase/lib/storage-store.js +0 -0
  77. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/duckdb/index.js +0 -0
  78. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/duckdb/lib/connector.js +0 -0
  79. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/mongodb/index.js +0 -0
  80. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/mongodb/lib/connector.js +0 -0
  81. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/mongodb/lib/job-store.js +0 -0
  82. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/mongodb/lib/pipeline-loader.js +0 -0
  83. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/mongodb/lib/session-store.js +0 -0
  84. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/mysql/index.js +0 -0
  85. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/mysql/lib/connector.js +0 -0
  86. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/param-redact.js +0 -0
  87. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/postgresql/index.js +0 -0
  88. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/postgresql/lib/connector.js +0 -0
  89. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/redis/index.js +0 -0
  90. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/redis/lib/connector.js +0 -0
  91. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/redis/lib/job-store.js +0 -0
  92. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/redis/lib/kv-store.js +0 -0
  93. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/redis/lib/render-cache-store.js +0 -0
  94. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/redis/lib/session-store.js +0 -0
  95. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/scylladb/index.js +0 -0
  96. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/scylladb/lib/connector.js +0 -0
  97. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/scylladb/lib/session-store.js +0 -0
  98. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/settle-once.js +0 -0
  99. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/sql-parser.js +0 -0
  100. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/sqlite/index.js +0 -0
  101. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/sqlite/lib/connector.js +0 -0
  102. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/sqlite/lib/job-store.js +0 -0
  103. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/sqlite/lib/kv-store.js +0 -0
  104. /package/framework/{v0.7.2 → v0.7.3}/core/connectors/sqlite/lib/session-store.js +0 -0
  105. /package/framework/{v0.7.2 → v0.7.3}/core/content.encoding +0 -0
  106. /package/framework/{v0.7.2 → v0.7.3}/core/controller/controller.framework.js +0 -0
  107. /package/framework/{v0.7.2 → v0.7.3}/core/controller/controller.render-json.js +0 -0
  108. /package/framework/{v0.7.2 → v0.7.3}/core/controller/controller.render-nunjucks-async.js +0 -0
  109. /package/framework/{v0.7.2 → v0.7.3}/core/controller/controller.render-nunjucks.js +0 -0
  110. /package/framework/{v0.7.2 → v0.7.3}/core/controller/controller.render-stream.js +0 -0
  111. /package/framework/{v0.7.2 → v0.7.3}/core/controller/controller.render-swig-async.js +0 -0
  112. /package/framework/{v0.7.2 → v0.7.3}/core/controller/controller.render-v1.js +0 -0
  113. /package/framework/{v0.7.2 → v0.7.3}/core/controller/controller.render-xml.js +0 -0
  114. /package/framework/{v0.7.2 → v0.7.3}/core/controller/index.js +0 -0
  115. /package/framework/{v0.7.2 → v0.7.3}/core/controller/inline-script.js +0 -0
  116. /package/framework/{v0.7.2 → v0.7.3}/core/controller/inspector-window-emit.js +0 -0
  117. /package/framework/{v0.7.2 → v0.7.3}/core/controller/release-banner.js +0 -0
  118. /package/framework/{v0.7.2 → v0.7.3}/core/dev/index.js +0 -0
  119. /package/framework/{v0.7.2 → v0.7.3}/core/dev/lib/class.js +0 -0
  120. /package/framework/{v0.7.2 → v0.7.3}/core/dev/lib/factory.js +0 -0
  121. /package/framework/{v0.7.2 → v0.7.3}/core/dev/lib/tools.js +0 -0
  122. /package/framework/{v0.7.2 → v0.7.3}/core/gna.js +0 -0
  123. /package/framework/{v0.7.2 → v0.7.3}/core/locales/README.md +0 -0
  124. /package/framework/{v0.7.2 → v0.7.3}/core/locales/currency.json +0 -0
  125. /package/framework/{v0.7.2 → v0.7.3}/core/locales/dist/language/en.json +0 -0
  126. /package/framework/{v0.7.2 → v0.7.3}/core/locales/dist/language/fr.json +0 -0
  127. /package/framework/{v0.7.2 → v0.7.3}/core/locales/dist/region/en.json +0 -0
  128. /package/framework/{v0.7.2 → v0.7.3}/core/locales/dist/region/fr.json +0 -0
  129. /package/framework/{v0.7.2 → v0.7.3}/core/locales/index.js +0 -0
  130. /package/framework/{v0.7.2 → v0.7.3}/core/mime.types +0 -0
  131. /package/framework/{v0.7.2 → v0.7.3}/core/model/entity.js +0 -0
  132. /package/framework/{v0.7.2 → v0.7.3}/core/model/index.js +0 -0
  133. /package/framework/{v0.7.2 → v0.7.3}/core/model/template/entityFactory.js +0 -0
  134. /package/framework/{v0.7.2 → v0.7.3}/core/model/template/index.js +0 -0
  135. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/README.md +0 -0
  136. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/index.js +0 -0
  137. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/csrf/README.md +0 -0
  138. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/csrf/package.json +0 -0
  139. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/csrf/src/main.js +0 -0
  140. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/README.md +0 -0
  141. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/coep/README.md +0 -0
  142. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/coep/package.json +0 -0
  143. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/coep/src/main.js +0 -0
  144. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/coop/README.md +0 -0
  145. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/coop/package.json +0 -0
  146. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/coop/src/main.js +0 -0
  147. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/corp/README.md +0 -0
  148. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/corp/package.json +0 -0
  149. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/corp/src/main.js +0 -0
  150. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/csp/README.md +0 -0
  151. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/csp/package.json +0 -0
  152. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/csp/src/main.js +0 -0
  153. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/hide-powered-by/README.md +0 -0
  154. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/hide-powered-by/package.json +0 -0
  155. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/hide-powered-by/src/main.js +0 -0
  156. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/hsts/README.md +0 -0
  157. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/hsts/package.json +0 -0
  158. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/hsts/src/main.js +0 -0
  159. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/origin-agent-cluster/README.md +0 -0
  160. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/origin-agent-cluster/package.json +0 -0
  161. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/origin-agent-cluster/src/main.js +0 -0
  162. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/package.json +0 -0
  163. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/referrer-policy/README.md +0 -0
  164. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/referrer-policy/package.json +0 -0
  165. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/referrer-policy/src/main.js +0 -0
  166. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/src/main.js +0 -0
  167. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-content-type-options/README.md +0 -0
  168. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-content-type-options/package.json +0 -0
  169. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-content-type-options/src/main.js +0 -0
  170. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/README.md +0 -0
  171. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/package.json +0 -0
  172. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-dns-prefetch-control/src/main.js +0 -0
  173. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-download-options/README.md +0 -0
  174. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-download-options/package.json +0 -0
  175. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-download-options/src/main.js +0 -0
  176. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-frame-options/README.md +0 -0
  177. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-frame-options/package.json +0 -0
  178. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-frame-options/src/main.js +0 -0
  179. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/README.md +0 -0
  180. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/package.json +0 -0
  181. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-permitted-cross-domain-policies/src/main.js +0 -0
  182. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-xss-protection/README.md +0 -0
  183. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-xss-protection/package.json +0 -0
  184. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/security-headers/x-xss-protection/src/main.js +0 -0
  185. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/session/README.md +0 -0
  186. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/session/package.json +0 -0
  187. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/session/src/main.js +0 -0
  188. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/storage/README.md +0 -0
  189. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/storage/build.json +0 -0
  190. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/storage/package.json +0 -0
  191. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/storage/src/main.js +0 -0
  192. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/validator/README.md +0 -0
  193. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/validator/build.json +0 -0
  194. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/validator/package.json +0 -0
  195. /package/framework/{v0.7.2 → v0.7.3}/core/plugins/lib/validator/src/form-validator.js +0 -0
  196. /package/framework/{v0.7.2 → v0.7.3}/core/router.js +0 -0
  197. /package/framework/{v0.7.2 → v0.7.3}/core/server.express.js +0 -0
  198. /package/framework/{v0.7.2 → v0.7.3}/core/server.isaac.js +0 -0
  199. /package/framework/{v0.7.2 → v0.7.3}/core/server.isaac.rapid-reset.js +0 -0
  200. /package/framework/{v0.7.2 → v0.7.3}/core/server.route-candidates.js +0 -0
  201. /package/framework/{v0.7.2 → v0.7.3}/core/status.codes +0 -0
  202. /package/framework/{v0.7.2 → v0.7.3}/core/template/_gitignore +0 -0
  203. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle/config/app.json +0 -0
  204. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle/config/connectors.json +0 -0
  205. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle/config/routing.json +0 -0
  206. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle/config/settings.json +0 -0
  207. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  208. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle/config/templates.json +0 -0
  209. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle/config/watchers.json +0 -0
  210. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  211. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  212. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle/controllers/setup.js +0 -0
  213. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle/index.js +0 -0
  214. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle/locales/en.json +0 -0
  215. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  216. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  217. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_public/css/home.css +0 -0
  218. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  219. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  220. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_public/js/components/x-checklist.js +0 -0
  221. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  222. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_public/manifest.webmanifest +0 -0
  223. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_public/readme.md +0 -0
  224. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_public/sw.js +0 -0
  225. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  226. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  227. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  228. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  229. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_templates/html/includes/x-checklist.html +0 -0
  230. /package/framework/{v0.7.2 → v0.7.3}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  231. /package/framework/{v0.7.2 → v0.7.3}/core/template/command/gina.bat.tpl +0 -0
  232. /package/framework/{v0.7.2 → v0.7.3}/core/template/command/gina.tpl +0 -0
  233. /package/framework/{v0.7.2 → v0.7.3}/core/template/conf/env.json +0 -0
  234. /package/framework/{v0.7.2 → v0.7.3}/core/template/conf/manifest.json +0 -0
  235. /package/framework/{v0.7.2 → v0.7.3}/core/template/conf/package.json +0 -0
  236. /package/framework/{v0.7.2 → v0.7.3}/core/template/conf/settings.json +0 -0
  237. /package/framework/{v0.7.2 → v0.7.3}/core/template/conf/statics.json +0 -0
  238. /package/framework/{v0.7.2 → v0.7.3}/core/template/error/client/json/401.json +0 -0
  239. /package/framework/{v0.7.2 → v0.7.3}/core/template/error/client/json/403.json +0 -0
  240. /package/framework/{v0.7.2 → v0.7.3}/core/template/error/client/json/404.json +0 -0
  241. /package/framework/{v0.7.2 → v0.7.3}/core/template/error/server/html/50x.html +0 -0
  242. /package/framework/{v0.7.2 → v0.7.3}/core/template/error/server/json/500.json +0 -0
  243. /package/framework/{v0.7.2 → v0.7.3}/core/template/error/server/json/503.json +0 -0
  244. /package/framework/{v0.7.2 → v0.7.3}/core/template/extensions/logger/config.json +0 -0
  245. /package/framework/{v0.7.2 → v0.7.3}/helpers/console.js +0 -0
  246. /package/framework/{v0.7.2 → v0.7.3}/helpers/context.js +0 -0
  247. /package/framework/{v0.7.2 → v0.7.3}/helpers/data/LICENSE +0 -0
  248. /package/framework/{v0.7.2 → v0.7.3}/helpers/data/README.md +0 -0
  249. /package/framework/{v0.7.2 → v0.7.3}/helpers/data/package.json +0 -0
  250. /package/framework/{v0.7.2 → v0.7.3}/helpers/data/src/main.js +0 -0
  251. /package/framework/{v0.7.2 → v0.7.3}/helpers/dateFormat.js +0 -0
  252. /package/framework/{v0.7.2 → v0.7.3}/helpers/index.js +0 -0
  253. /package/framework/{v0.7.2 → v0.7.3}/helpers/json/LICENSE +0 -0
  254. /package/framework/{v0.7.2 → v0.7.3}/helpers/json/README.md +0 -0
  255. /package/framework/{v0.7.2 → v0.7.3}/helpers/json/package.json +0 -0
  256. /package/framework/{v0.7.2 → v0.7.3}/helpers/json/src/main.js +0 -0
  257. /package/framework/{v0.7.2 → v0.7.3}/helpers/path.js +0 -0
  258. /package/framework/{v0.7.2 → v0.7.3}/helpers/plugins/README.md +0 -0
  259. /package/framework/{v0.7.2 → v0.7.3}/helpers/plugins/package.json +0 -0
  260. /package/framework/{v0.7.2 → v0.7.3}/helpers/plugins/src/api-error.js +0 -0
  261. /package/framework/{v0.7.2 → v0.7.3}/helpers/plugins/src/main.js +0 -0
  262. /package/framework/{v0.7.2 → v0.7.3}/helpers/prototypes.js +0 -0
  263. /package/framework/{v0.7.2 → v0.7.3}/helpers/task.js +0 -0
  264. /package/framework/{v0.7.2 → v0.7.3}/helpers/text.js +0 -0
  265. /package/framework/{v0.7.2 → v0.7.3}/lib/admin/package.json +0 -0
  266. /package/framework/{v0.7.2 → v0.7.3}/lib/admin/src/main.js +0 -0
  267. /package/framework/{v0.7.2 → v0.7.3}/lib/archiver/README.md +0 -0
  268. /package/framework/{v0.7.2 → v0.7.3}/lib/archiver/build.json +0 -0
  269. /package/framework/{v0.7.2 → v0.7.3}/lib/archiver/package.json +0 -0
  270. /package/framework/{v0.7.2 → v0.7.3}/lib/archiver/src/dep/jszip.min.js +0 -0
  271. /package/framework/{v0.7.2 → v0.7.3}/lib/archiver/src/main.js +0 -0
  272. /package/framework/{v0.7.2 → v0.7.3}/lib/async/package.json +0 -0
  273. /package/framework/{v0.7.2 → v0.7.3}/lib/async/src/main.js +0 -0
  274. /package/framework/{v0.7.2 → v0.7.3}/lib/audit/package.json +0 -0
  275. /package/framework/{v0.7.2 → v0.7.3}/lib/audit/src/main.js +0 -0
  276. /package/framework/{v0.7.2 → v0.7.3}/lib/audit-store.js +0 -0
  277. /package/framework/{v0.7.2 → v0.7.3}/lib/authn/package.json +0 -0
  278. /package/framework/{v0.7.2 → v0.7.3}/lib/authn/src/lockout.js +0 -0
  279. /package/framework/{v0.7.2 → v0.7.3}/lib/authn/src/main.js +0 -0
  280. /package/framework/{v0.7.2 → v0.7.3}/lib/authn/src/totp.js +0 -0
  281. /package/framework/{v0.7.2 → v0.7.3}/lib/authz-gate/package.json +0 -0
  282. /package/framework/{v0.7.2 → v0.7.3}/lib/authz-gate/src/main.js +0 -0
  283. /package/framework/{v0.7.2 → v0.7.3}/lib/cache/README.md +0 -0
  284. /package/framework/{v0.7.2 → v0.7.3}/lib/cache/build.json +0 -0
  285. /package/framework/{v0.7.2 → v0.7.3}/lib/cache/package.json +0 -0
  286. /package/framework/{v0.7.2 → v0.7.3}/lib/cache/src/main.js +0 -0
  287. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/aliases.json +0 -0
  288. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/audit/arguments.json +0 -0
  289. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/audit/help.txt +0 -0
  290. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/audit/verify.js +0 -0
  291. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/add.js +0 -0
  292. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/arguments.json +0 -0
  293. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/build.js +0 -0
  294. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/copy.js +0 -0
  295. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/cp.js +0 -0
  296. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/help.js +0 -0
  297. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/help.txt +0 -0
  298. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/inc/boot-lines.js +0 -0
  299. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/inc/name-rewrite.js +0 -0
  300. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/inc/name.js +0 -0
  301. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/list.js +0 -0
  302. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/man.js +0 -0
  303. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/mcp-start.js +0 -0
  304. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/mcp.js +0 -0
  305. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/oas.js +0 -0
  306. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/openapi.js +0 -0
  307. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/remove.js +0 -0
  308. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/rename.js +0 -0
  309. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/restart.js +0 -0
  310. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/rm.js +0 -0
  311. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/start.js +0 -0
  312. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/status.js +0 -0
  313. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/stop.js +0 -0
  314. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/bundle/types.js +0 -0
  315. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/cache/arguments.json +0 -0
  316. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/cache/clear.js +0 -0
  317. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/cache/help.txt +0 -0
  318. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/cache/stats.js +0 -0
  319. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/connector/arguments.json +0 -0
  320. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/connector/help.js +0 -0
  321. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/connector/infer.js +0 -0
  322. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/connector/list.js +0 -0
  323. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/connector/migrate.js +0 -0
  324. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/connector/models.js +0 -0
  325. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/connector/remove.js +0 -0
  326. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/connector/rm.js +0 -0
  327. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/connector/test.js +0 -0
  328. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/container/arguments.json +0 -0
  329. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/container/help.js +0 -0
  330. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/container/help.txt +0 -0
  331. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/container/man.js +0 -0
  332. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/container/ps.js +0 -0
  333. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/container/stop.js +0 -0
  334. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/controller/add.js +0 -0
  335. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/controller/arguments.json +0 -0
  336. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/controller/help.txt +0 -0
  337. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/controller/inc/args.js +0 -0
  338. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/controller/inc/namespace.js +0 -0
  339. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/controller/inc/reference-rewrite.js +0 -0
  340. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/controller/inc/reference-scan.js +0 -0
  341. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/controller/inc/scaffold.js +0 -0
  342. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/controller/remove.js +0 -0
  343. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/controller/rename.js +0 -0
  344. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/controller/rm.js +0 -0
  345. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/env/add.js +0 -0
  346. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/env/get.js +0 -0
  347. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/env/help.js +0 -0
  348. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/env/help.txt +0 -0
  349. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/env/inc/name.js +0 -0
  350. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/env/link-dev.js +0 -0
  351. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/env/list.js +0 -0
  352. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/env/remove.js +0 -0
  353. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/env/rm.js +0 -0
  354. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/env/set.js +0 -0
  355. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/env/unset.js +0 -0
  356. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/env/use.js +0 -0
  357. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/add.js +0 -0
  358. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/arguments.json +0 -0
  359. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/build.js +0 -0
  360. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/dot.js +0 -0
  361. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/get.js +0 -0
  362. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/help.js +0 -0
  363. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/init.js +0 -0
  364. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/link-node-modules.js +0 -0
  365. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/link.js +0 -0
  366. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/list.js +0 -0
  367. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/man.js +0 -0
  368. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/msg.json +0 -0
  369. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/open.js +0 -0
  370. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/remove.js +0 -0
  371. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/reset.js +0 -0
  372. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/restart.js +0 -0
  373. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/set.js +0 -0
  374. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/start.js +0 -0
  375. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/status.js +0 -0
  376. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/stop.js +0 -0
  377. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/tail.js +0 -0
  378. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/update.js +0 -0
  379. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/framework/version.js +0 -0
  380. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/gina-dev.1.md +0 -0
  381. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/helper.js +0 -0
  382. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/i18n/add.js +0 -0
  383. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/i18n/arguments.json +0 -0
  384. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/i18n/export.js +0 -0
  385. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/i18n/help.js +0 -0
  386. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/i18n/help.txt +0 -0
  387. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/i18n/import.js +0 -0
  388. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/i18n/scan.js +0 -0
  389. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/image/_host.js +0 -0
  390. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/image/arguments.json +0 -0
  391. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/image/build.js +0 -0
  392. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/image/help.js +0 -0
  393. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/image/help.txt +0 -0
  394. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/image/list.js +0 -0
  395. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/image/man.js +0 -0
  396. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/image/rm.js +0 -0
  397. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/image/run.js +0 -0
  398. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/index.js +0 -0
  399. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/inspector/help.js +0 -0
  400. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/inspector/help.txt +0 -0
  401. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/inspector/open.js +0 -0
  402. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/man-render.js +0 -0
  403. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/minion/arguments.json +0 -0
  404. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/minion/help.js +0 -0
  405. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/minion/help.txt +0 -0
  406. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/minion/kill.js +0 -0
  407. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/minion/list.js +0 -0
  408. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/msg.json +0 -0
  409. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/port/help.js +0 -0
  410. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/port/help.txt +0 -0
  411. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/port/inc/scan.js +0 -0
  412. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/port/list.js +0 -0
  413. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/port/reset.js +0 -0
  414. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/port/set.js +0 -0
  415. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/add.js +0 -0
  416. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/arguments.json +0 -0
  417. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/backup.js +0 -0
  418. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/build.js +0 -0
  419. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/help.js +0 -0
  420. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/help.txt +0 -0
  421. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/import.js +0 -0
  422. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/inc/name.js +0 -0
  423. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/list.js +0 -0
  424. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/man.js +0 -0
  425. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/move.js +0 -0
  426. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/remove.js +0 -0
  427. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/rename.js +0 -0
  428. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/restart.js +0 -0
  429. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/restore.js +0 -0
  430. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/rm.js +0 -0
  431. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/start.js +0 -0
  432. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/status.js +0 -0
  433. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/project/stop.js +0 -0
  434. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/protocol/arguments.json +0 -0
  435. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/protocol/help.js +0 -0
  436. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/protocol/help.txt +0 -0
  437. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/protocol/list.js +0 -0
  438. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/protocol/remove.js +0 -0
  439. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/protocol/set.js +0 -0
  440. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/scope/add.js +0 -0
  441. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/scope/help.js +0 -0
  442. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/scope/help.txt +0 -0
  443. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/scope/inc/name.js +0 -0
  444. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/scope/link-local.js +0 -0
  445. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/scope/link-production.js +0 -0
  446. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/scope/list.js +0 -0
  447. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/scope/remove.js +0 -0
  448. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/scope/rm.js +0 -0
  449. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/scope/use.js +0 -0
  450. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/secrets/arguments.json +0 -0
  451. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/secrets/check.js +0 -0
  452. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/secrets/help.js +0 -0
  453. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/secrets/help.txt +0 -0
  454. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/secrets/scan.js +0 -0
  455. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/service/help.js +0 -0
  456. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/service/help.txt +0 -0
  457. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/service/list.js +0 -0
  458. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/service/man.js +0 -0
  459. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/service/start.js +0 -0
  460. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/storage/arguments.json +0 -0
  461. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/storage/gc.js +0 -0
  462. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/storage/help.txt +0 -0
  463. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/storage/stats.js +0 -0
  464. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/storage/verify.js +0 -0
  465. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd/view/add.js +0 -0
  466. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd-status-format/package.json +0 -0
  467. /package/framework/{v0.7.2 → v0.7.3}/lib/cmd-status-format/src/main.js +0 -0
  468. /package/framework/{v0.7.2 → v0.7.3}/lib/collection/README.md +0 -0
  469. /package/framework/{v0.7.2 → v0.7.3}/lib/collection/build.json +0 -0
  470. /package/framework/{v0.7.2 → v0.7.3}/lib/collection/package.json +0 -0
  471. /package/framework/{v0.7.2 → v0.7.3}/lib/collection/src/main.js +0 -0
  472. /package/framework/{v0.7.2 → v0.7.3}/lib/conf-view/package.json +0 -0
  473. /package/framework/{v0.7.2 → v0.7.3}/lib/conf-view/src/main.js +0 -0
  474. /package/framework/{v0.7.2 → v0.7.3}/lib/config.js +0 -0
  475. /package/framework/{v0.7.2 → v0.7.3}/lib/connector-config/package.json +0 -0
  476. /package/framework/{v0.7.2 → v0.7.3}/lib/connector-config/src/main.js +0 -0
  477. /package/framework/{v0.7.2 → v0.7.3}/lib/connector-error/package.json +0 -0
  478. /package/framework/{v0.7.2 → v0.7.3}/lib/connector-error/src/main.js +0 -0
  479. /package/framework/{v0.7.2 → v0.7.3}/lib/connector-registry/package.json +0 -0
  480. /package/framework/{v0.7.2 → v0.7.3}/lib/connector-registry/src/main.js +0 -0
  481. /package/framework/{v0.7.2 → v0.7.3}/lib/cron/README.md +0 -0
  482. /package/framework/{v0.7.2 → v0.7.3}/lib/cron/package.json +0 -0
  483. /package/framework/{v0.7.2 → v0.7.3}/lib/cron/src/main.js +0 -0
  484. /package/framework/{v0.7.2 → v0.7.3}/lib/domain/LICENSE +0 -0
  485. /package/framework/{v0.7.2 → v0.7.3}/lib/domain/README.md +0 -0
  486. /package/framework/{v0.7.2 → v0.7.3}/lib/domain/package.json +0 -0
  487. /package/framework/{v0.7.2 → v0.7.3}/lib/domain/src/main.js +0 -0
  488. /package/framework/{v0.7.2 → v0.7.3}/lib/dto/package.json +0 -0
  489. /package/framework/{v0.7.2 → v0.7.3}/lib/dto/src/main.js +0 -0
  490. /package/framework/{v0.7.2 → v0.7.3}/lib/dto-pipe/package.json +0 -0
  491. /package/framework/{v0.7.2 → v0.7.3}/lib/dto-pipe/src/main.js +0 -0
  492. /package/framework/{v0.7.2 → v0.7.3}/lib/dto-types/package.json +0 -0
  493. /package/framework/{v0.7.2 → v0.7.3}/lib/dto-types/src/main.js +0 -0
  494. /package/framework/{v0.7.2 → v0.7.3}/lib/duration/package.json +0 -0
  495. /package/framework/{v0.7.2 → v0.7.3}/lib/duration/src/main.js +0 -0
  496. /package/framework/{v0.7.2 → v0.7.3}/lib/error-ref/package.json +0 -0
  497. /package/framework/{v0.7.2 → v0.7.3}/lib/error-ref/src/main.js +0 -0
  498. /package/framework/{v0.7.2 → v0.7.3}/lib/generator/index.js +0 -0
  499. /package/framework/{v0.7.2 → v0.7.3}/lib/i18n/package.json +0 -0
  500. /package/framework/{v0.7.2 → v0.7.3}/lib/i18n/src/main.js +0 -0
  501. /package/framework/{v0.7.2 → v0.7.3}/lib/idempotency/package.json +0 -0
  502. /package/framework/{v0.7.2 → v0.7.3}/lib/idempotency/src/main.js +0 -0
  503. /package/framework/{v0.7.2 → v0.7.3}/lib/image-build/package.json +0 -0
  504. /package/framework/{v0.7.2 → v0.7.3}/lib/image-build/src/main.js +0 -0
  505. /package/framework/{v0.7.2 → v0.7.3}/lib/index.js +0 -0
  506. /package/framework/{v0.7.2 → v0.7.3}/lib/inherits/LICENSE +0 -0
  507. /package/framework/{v0.7.2 → v0.7.3}/lib/inherits/README.md +0 -0
  508. /package/framework/{v0.7.2 → v0.7.3}/lib/inherits/package.json +0 -0
  509. /package/framework/{v0.7.2 → v0.7.3}/lib/inherits/src/main.js +0 -0
  510. /package/framework/{v0.7.2 → v0.7.3}/lib/inspector-events/package.json +0 -0
  511. /package/framework/{v0.7.2 → v0.7.3}/lib/inspector-events/src/main.js +0 -0
  512. /package/framework/{v0.7.2 → v0.7.3}/lib/inspector-redact/package.json +0 -0
  513. /package/framework/{v0.7.2 → v0.7.3}/lib/inspector-redact/src/main.js +0 -0
  514. /package/framework/{v0.7.2 → v0.7.3}/lib/instrument/package.json +0 -0
  515. /package/framework/{v0.7.2 → v0.7.3}/lib/instrument/src/main.js +0 -0
  516. /package/framework/{v0.7.2 → v0.7.3}/lib/job/package.json +0 -0
  517. /package/framework/{v0.7.2 → v0.7.3}/lib/job/src/main.js +0 -0
  518. /package/framework/{v0.7.2 → v0.7.3}/lib/job-store.js +0 -0
  519. /package/framework/{v0.7.2 → v0.7.3}/lib/json-config-header/package.json +0 -0
  520. /package/framework/{v0.7.2 → v0.7.3}/lib/json-config-header/src/main.js +0 -0
  521. /package/framework/{v0.7.2 → v0.7.3}/lib/kv/package.json +0 -0
  522. /package/framework/{v0.7.2 → v0.7.3}/lib/kv/src/main.js +0 -0
  523. /package/framework/{v0.7.2 → v0.7.3}/lib/kv-store.js +0 -0
  524. /package/framework/{v0.7.2 → v0.7.3}/lib/lane/package.json +0 -0
  525. /package/framework/{v0.7.2 → v0.7.3}/lib/lane/src/main.js +0 -0
  526. /package/framework/{v0.7.2 → v0.7.3}/lib/loading-state/package.json +0 -0
  527. /package/framework/{v0.7.2 → v0.7.3}/lib/loading-state/src/main.js +0 -0
  528. /package/framework/{v0.7.2 → v0.7.3}/lib/logger/README.md +0 -0
  529. /package/framework/{v0.7.2 → v0.7.3}/lib/logger/package.json +0 -0
  530. /package/framework/{v0.7.2 → v0.7.3}/lib/logger/src/containers/default/index.js +0 -0
  531. /package/framework/{v0.7.2 → v0.7.3}/lib/logger/src/containers/file/index.js +0 -0
  532. /package/framework/{v0.7.2 → v0.7.3}/lib/logger/src/containers/mq/index.js +0 -0
  533. /package/framework/{v0.7.2 → v0.7.3}/lib/logger/src/containers/mq/listener.js +0 -0
  534. /package/framework/{v0.7.2 → v0.7.3}/lib/logger/src/containers/mq/speaker.js +0 -0
  535. /package/framework/{v0.7.2 → v0.7.3}/lib/logger/src/helper.js +0 -0
  536. /package/framework/{v0.7.2 → v0.7.3}/lib/logger/src/main.js +0 -0
  537. /package/framework/{v0.7.2 → v0.7.3}/lib/logger/src/redact.js +0 -0
  538. /package/framework/{v0.7.2 → v0.7.3}/lib/maintenance/package.json +0 -0
  539. /package/framework/{v0.7.2 → v0.7.3}/lib/maintenance/src/main.js +0 -0
  540. /package/framework/{v0.7.2 → v0.7.3}/lib/math/index.js +0 -0
  541. /package/framework/{v0.7.2 → v0.7.3}/lib/mcp-dispatch/package.json +0 -0
  542. /package/framework/{v0.7.2 → v0.7.3}/lib/mcp-dispatch/src/main.js +0 -0
  543. /package/framework/{v0.7.2 → v0.7.3}/lib/mcp-http/package.json +0 -0
  544. /package/framework/{v0.7.2 → v0.7.3}/lib/mcp-http/src/main.js +0 -0
  545. /package/framework/{v0.7.2 → v0.7.3}/lib/mcp-server/package.json +0 -0
  546. /package/framework/{v0.7.2 → v0.7.3}/lib/mcp-server/src/main.js +0 -0
  547. /package/framework/{v0.7.2 → v0.7.3}/lib/merge/README.md +0 -0
  548. /package/framework/{v0.7.2 → v0.7.3}/lib/merge/package.json +0 -0
  549. /package/framework/{v0.7.2 → v0.7.3}/lib/merge/src/main.js +0 -0
  550. /package/framework/{v0.7.2 → v0.7.3}/lib/message-validator/package.json +0 -0
  551. /package/framework/{v0.7.2 → v0.7.3}/lib/message-validator/src/main.js +0 -0
  552. /package/framework/{v0.7.2 → v0.7.3}/lib/metrics/package.json +0 -0
  553. /package/framework/{v0.7.2 → v0.7.3}/lib/metrics/src/main.js +0 -0
  554. /package/framework/{v0.7.2 → v0.7.3}/lib/model.js +0 -0
  555. /package/framework/{v0.7.2 → v0.7.3}/lib/money/package.json +0 -0
  556. /package/framework/{v0.7.2 → v0.7.3}/lib/money/src/main.js +0 -0
  557. /package/framework/{v0.7.2 → v0.7.3}/lib/multipart/package.json +0 -0
  558. /package/framework/{v0.7.2 → v0.7.3}/lib/multipart/src/main.js +0 -0
  559. /package/framework/{v0.7.2 → v0.7.3}/lib/net-locality/package.json +0 -0
  560. /package/framework/{v0.7.2 → v0.7.3}/lib/net-locality/src/main.js +0 -0
  561. /package/framework/{v0.7.2 → v0.7.3}/lib/nunjucks-filters/README.md +0 -0
  562. /package/framework/{v0.7.2 → v0.7.3}/lib/nunjucks-filters/package.json +0 -0
  563. /package/framework/{v0.7.2 → v0.7.3}/lib/nunjucks-filters/src/main.js +0 -0
  564. /package/framework/{v0.7.2 → v0.7.3}/lib/nunjucks-resolver/package.json +0 -0
  565. /package/framework/{v0.7.2 → v0.7.3}/lib/nunjucks-resolver/src/main.js +0 -0
  566. /package/framework/{v0.7.2 → v0.7.3}/lib/priority/package.json +0 -0
  567. /package/framework/{v0.7.2 → v0.7.3}/lib/priority/src/main.js +0 -0
  568. /package/framework/{v0.7.2 → v0.7.3}/lib/proc.js +0 -0
  569. /package/framework/{v0.7.2 → v0.7.3}/lib/push/package.json +0 -0
  570. /package/framework/{v0.7.2 → v0.7.3}/lib/push/src/main.js +0 -0
  571. /package/framework/{v0.7.2 → v0.7.3}/lib/rate-limit/package.json +0 -0
  572. /package/framework/{v0.7.2 → v0.7.3}/lib/rate-limit/src/main.js +0 -0
  573. /package/framework/{v0.7.2 → v0.7.3}/lib/release-watch/package.json +0 -0
  574. /package/framework/{v0.7.2 → v0.7.3}/lib/release-watch/src/main.js +0 -0
  575. /package/framework/{v0.7.2 → v0.7.3}/lib/render-cache/package.json +0 -0
  576. /package/framework/{v0.7.2 → v0.7.3}/lib/render-cache/src/main.js +0 -0
  577. /package/framework/{v0.7.2 → v0.7.3}/lib/render-cache-store.js +0 -0
  578. /package/framework/{v0.7.2 → v0.7.3}/lib/routing/README.md +0 -0
  579. /package/framework/{v0.7.2 → v0.7.3}/lib/routing/build.json +0 -0
  580. /package/framework/{v0.7.2 → v0.7.3}/lib/routing/package.json +0 -0
  581. /package/framework/{v0.7.2 → v0.7.3}/lib/routing/src/main.js +0 -0
  582. /package/framework/{v0.7.2 → v0.7.3}/lib/routing-introspect/package.json +0 -0
  583. /package/framework/{v0.7.2 → v0.7.3}/lib/routing-introspect/src/main.js +0 -0
  584. /package/framework/{v0.7.2 → v0.7.3}/lib/secrets/package.json +0 -0
  585. /package/framework/{v0.7.2 → v0.7.3}/lib/secrets/src/backends/env.js +0 -0
  586. /package/framework/{v0.7.2 → v0.7.3}/lib/secrets/src/backends/exec.js +0 -0
  587. /package/framework/{v0.7.2 → v0.7.3}/lib/secrets/src/backends/file.js +0 -0
  588. /package/framework/{v0.7.2 → v0.7.3}/lib/secrets/src/declaration.js +0 -0
  589. /package/framework/{v0.7.2 → v0.7.3}/lib/secrets/src/env-file.js +0 -0
  590. /package/framework/{v0.7.2 → v0.7.3}/lib/secrets/src/main.js +0 -0
  591. /package/framework/{v0.7.2 → v0.7.3}/lib/secrets/src/sources.js +0 -0
  592. /package/framework/{v0.7.2 → v0.7.3}/lib/security-headers-emitter/package.json +0 -0
  593. /package/framework/{v0.7.2 → v0.7.3}/lib/security-headers-emitter/src/main.js +0 -0
  594. /package/framework/{v0.7.2 → v0.7.3}/lib/session-lifetime/package.json +0 -0
  595. /package/framework/{v0.7.2 → v0.7.3}/lib/session-lifetime/src/main.js +0 -0
  596. /package/framework/{v0.7.2 → v0.7.3}/lib/session-store.js +0 -0
  597. /package/framework/{v0.7.2 → v0.7.3}/lib/shell.js +0 -0
  598. /package/framework/{v0.7.2 → v0.7.3}/lib/sqlite-driver.js +0 -0
  599. /package/framework/{v0.7.2 → v0.7.3}/lib/sri/package.json +0 -0
  600. /package/framework/{v0.7.2 → v0.7.3}/lib/sri/src/main.js +0 -0
  601. /package/framework/{v0.7.2 → v0.7.3}/lib/state.js +0 -0
  602. /package/framework/{v0.7.2 → v0.7.3}/lib/storage/package.json +0 -0
  603. /package/framework/{v0.7.2 → v0.7.3}/lib/storage/src/local-cas.js +0 -0
  604. /package/framework/{v0.7.2 → v0.7.3}/lib/storage/src/local-stream.js +0 -0
  605. /package/framework/{v0.7.2 → v0.7.3}/lib/storage/src/local.js +0 -0
  606. /package/framework/{v0.7.2 → v0.7.3}/lib/storage/src/main.js +0 -0
  607. /package/framework/{v0.7.2 → v0.7.3}/lib/storage/src/meta-store.js +0 -0
  608. /package/framework/{v0.7.2 → v0.7.3}/lib/storage/src/s3.js +0 -0
  609. /package/framework/{v0.7.2 → v0.7.3}/lib/storage/src/util.js +0 -0
  610. /package/framework/{v0.7.2 → v0.7.3}/lib/storage-store.js +0 -0
  611. /package/framework/{v0.7.2 → v0.7.3}/lib/swig-filters/README.md +0 -0
  612. /package/framework/{v0.7.2 → v0.7.3}/lib/swig-filters/package.json +0 -0
  613. /package/framework/{v0.7.2 → v0.7.3}/lib/swig-filters/src/main.js +0 -0
  614. /package/framework/{v0.7.2 → v0.7.3}/lib/swig-resolver/package.json +0 -0
  615. /package/framework/{v0.7.2 → v0.7.3}/lib/swig-resolver/src/main.js +0 -0
  616. /package/framework/{v0.7.2 → v0.7.3}/lib/template-loaders/package.json +0 -0
  617. /package/framework/{v0.7.2 → v0.7.3}/lib/template-loaders/src/loaders/http.js +0 -0
  618. /package/framework/{v0.7.2 → v0.7.3}/lib/template-loaders/src/loaders/memory.js +0 -0
  619. /package/framework/{v0.7.2 → v0.7.3}/lib/template-loaders/src/main.js +0 -0
  620. /package/framework/{v0.7.2 → v0.7.3}/lib/url/README.md +0 -0
  621. /package/framework/{v0.7.2 → v0.7.3}/lib/url/index.js +0 -0
  622. /package/framework/{v0.7.2 → v0.7.3}/lib/url/routing.json +0 -0
  623. /package/framework/{v0.7.2 → v0.7.3}/lib/uuid/package.json +0 -0
  624. /package/framework/{v0.7.2 → v0.7.3}/lib/uuid/src/main.js +0 -0
  625. /package/framework/{v0.7.2 → v0.7.3}/lib/validator.js +0 -0
  626. /package/framework/{v0.7.2 → v0.7.3}/lib/watcher/package.json +0 -0
  627. /package/framework/{v0.7.2 → v0.7.3}/lib/watcher/src/main.js +0 -0
  628. /package/framework/{v0.7.2 → v0.7.3}/lib/ws-framing/package.json +0 -0
  629. /package/framework/{v0.7.2 → v0.7.3}/lib/ws-framing/src/main.js +0 -0
  630. /package/framework/{v0.7.2 → v0.7.3}/lib/ws-query/package.json +0 -0
  631. /package/framework/{v0.7.2 → v0.7.3}/lib/ws-query/src/main.js +0 -0
  632. /package/framework/{v0.7.2 → v0.7.3}/lib/ws-session/package.json +0 -0
  633. /package/framework/{v0.7.2 → v0.7.3}/lib/ws-session/src/main.js +0 -0
@@ -6,721 +6,721 @@
6
6
  Released under the MIT License.
7
7
  @source https://gist.github.com/eligrey/1129031 */
8
8
  var requirejs,require,define;
9
- (function(f,q){function F(ba,Ga){return Ga||''}function H(ba){return qa.call(ba)==='[object Function]'}function N(ba){return qa.call(ba)==='[object Array]'}function U(ba,Ga){if(ba){var La;for(La=0;La<ba.length&&(!ba[La]||!Ga(ba[La],La,ba));La+=1);}}function D(ba,Ga){if(ba){var La;for(La=ba.length-1;La>-1&&(!ba[La]||!Ga(ba[La],La,ba));--La);}}function m(ba,Ga){return K.call(ba,Ga)}function E(ba,Ga){return m(ba,Ga)&&ba[Ga]}function A(ba,Ga){for(var La in ba)if(m(ba,La)&&Da.indexOf(La)==-1&&Ga(ba[La],
10
- La))break}function aa(ba,Ga,La,ab){Ga&&A(Ga,function(ib,Ya){if(La||!m(ba,Ya))!ab||typeof ib!=='object'||!ib||N(ib)||H(ib)||ib instanceof RegExp?ba[Ya]=ib:(ba[Ya]||(ba[Ya]={}),aa(ba[Ya],ib,La,ab))});return ba}function l(ba,Ga){return function(){return Ga.apply(ba,arguments)}}function W(ba){throw ba;}function r(ba){if(!ba)return ba;var Ga=f;U(ba.split('.'),function(La){Ga=Ga[La]});return Ga}function n(ba,Ga,La,ab){Ga=Error(Ga+'\nhttps://requirejs.org/docs/errors.html#'+ba);Ga.requireType=ba;Ga.requireModules=
11
- ab;La&&(Ga.originalError=La);return Ga}function Z(){if(L&&L.readyState==='interactive')return L;D(document.getElementsByTagName('script'),function(ba){if(ba.readyState==='interactive')return L=ba});return L}var T,Y,v,L,y,x,R,X=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg,g=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,V=/\.js$/,fa=/^\.\//;var ua=Object.prototype;var qa=ua.toString,K=ua.hasOwnProperty,ha=!(typeof window==='undefined'||typeof navigator==='undefined'||!window.document),oa=!ha&&typeof importScripts!==
12
- 'undefined',Ja=ha&&navigator.platform==='PLAYSTATION 3'?/^complete$/:/^(complete|loaded)$/,O=typeof opera!=='undefined'&&opera.toString()==='[object Opera]',S={},ya={},ka=[],Ea=!1,Da=['__proto__','constructor'];if(typeof define==='undefined'){if(typeof requirejs!=='undefined'){if(H(requirejs))return;ya=requirejs;requirejs=void 0}typeof require==='undefined'||H(require)||(ya=require,require=void 0);var wa=requirejs=function(ba,Ga,La,ab){var ib='_';if(!N(ba)&&typeof ba!=='string'){var Ya=ba;N(Ga)?(ba=
13
- Ga,Ga=La,La=ab):ba=[]}Ya&&Ya.context&&(ib=Ya.context);(ab=E(S,ib))||(ab=S[ib]=wa.s.newContext(ib));Ya&&ab.configure(Ya);return ab.require(ba,Ga,La)};wa.config=function(ba){return wa(ba)};wa.nextTick=typeof q!=='undefined'?function(ba){q(ba,4)}:function(ba){ba()};require||=wa;wa.version='2.3.7';wa.jsExtRegExp=/^\/|:|\?|\.js$/;wa.isBrowser=ha;ua=wa.s={contexts:S,newContext:function(ba){function Ga(B,la,va){var ra;la=la&&la.split('/');var sa=ja.map,Ta=sa&&sa['*'];if(B){B=B.split('/');var $a=B.length-
14
- 1;ja.nodeIdCompat&&V.test(B[$a])&&(B[$a]=B[$a].replace(V,''));B[0].charAt(0)==='.'&&la&&($a=la.slice(0,la.length-1),B=$a.concat(B));$a=B;for(ra=0;ra<$a.length;ra++){var Oa=$a[ra];Oa==='.'?($a.splice(ra,1),--ra):Oa==='..'&&ra!==0&&(ra!==1||$a[2]!=='..')&&$a[ra-1]!=='..'&&ra>0&&($a.splice(ra-1,2),ra-=2)}B=B.join('/')}if(va&&sa&&(la||Ta)){$a=B.split('/');ra=$a.length;a:for(;ra>0;--ra){var lb=$a.slice(0,ra).join('/');if(la)for(Oa=la.length;Oa>0;--Oa)if(va=E(sa,la.slice(0,Oa).join('/')))if(va=E(va,lb)){var nb=
15
- va;var vb=ra;break a}if(!zb&&Ta&&E(Ta,lb)){var zb=E(Ta,lb);var tb=ra}}!nb&&zb&&(nb=zb,vb=tb);nb&&($a.splice(0,vb,nb),B=$a.join('/'))}return(nb=E(ja.pkgs,B))?nb:B}function La(B){ha&&U(document.getElementsByTagName('script'),function(la){if(la.getAttribute('data-requiremodule')===B&&la.getAttribute('data-requirecontext')===ta.contextName)return la.parentNode.removeChild(la),!0})}function ab(B){var la=E(ja.paths,B);if(la&&N(la)&&la.length>1)return la.shift(),ta.require.undef(B),ta.makeRequire(null,{skipMap:!0})([B]),
16
- !0}function ib(B){var la=B?B.indexOf('!'):-1;if(la>-1){var va=B.substring(0,la);B=B.substring(la+1,B.length)}return[va,B]}function Ya(B,la,va,ra){var sa=null,Ta=la?la.name:null,$a=B,Oa=!0,lb='';B||(Oa=!1,B='_@r'+(w+=1));B=ib(B);sa=B[0];B=B[1];if(sa){sa=Ga(sa,Ta,ra);var nb=E(Ua,sa)}if(B)if(sa)lb=va?B:nb&&nb.normalize?nb.normalize(B,function(zb){return Ga(zb,Ta,ra)}):B.indexOf('!')===-1?Ga(B,Ta,ra):B;else{lb=Ga(B,Ta,ra);B=ib(lb);sa=B[0];lb=B[1];va=!0;var vb=ta.nameToUrl(lb)}va=!sa||nb||va?'':'_unnormalized'+
17
- (G+=1);return{prefix:sa,name:lb,parentMap:la,unnormalized:!!va,url:vb,originalName:$a,isDefine:Oa,id:(sa?sa+'!'+lb:lb)+va}}function qb(B){var la=B.id,va=E(C,la);va||=C[la]=new ta.Module(B);return va}function Cb(B,la,va){var ra=B.id,sa=E(C,ra);if(!m(Ua,ra)||sa&&!sa.defineEmitComplete)if(sa=qb(B),sa.error&&la==='error')va(sa.error);else sa.on(la,va);else la==='defined'&&va(Ua[ra])}function ob(B,la){var va=B.requireModules,ra=!1;if(la)la(B);else if(U(va,function(sa){if(sa=E(C,sa))sa.error=B,sa.events.error&&
18
- (ra=!0,sa.emit('error',B))}),!ra)wa.onError(B)}function Kb(){ka.length&&(U(ka,function(B){var la=B[0];typeof la==='string'&&(ta.defQueueMap[la]=!0);Aa.push(B)}),ka=[])}function Mb(B){delete C[B];delete P[B]}function pb(B,la,va){var ra=B.map.id;B.error?B.emit('error',B.error):(la[ra]=!0,U(B.depMaps,function(sa,Ta){sa=sa.id;var $a=E(C,sa);!$a||B.depMatched[Ta]||va[sa]||(E(la,sa)?(B.defineDep(Ta,Ua[sa]),B.check()):pb($a,la,va))}),va[ra]=!0)}function gb(){var B,la,va=(B=ja.waitSeconds*1E3)&&ta.startTime+
19
- B<(new Date).getTime(),ra=[],sa=[],Ta=!1,$a=!0;if(!da){da=!0;A(P,function(Oa){var lb=Oa.map,nb=lb.id;if(Oa.enabled&&(lb.isDefine||sa.push(Oa),!Oa.error))if(!Oa.inited&&va)ab(nb)?Ta=la=!0:(ra.push(nb),La(nb));else if(!Oa.inited&&Oa.fetched&&lb.isDefine&&(Ta=!0,!lb.prefix))return $a=!1});if(va&&ra.length)return B=n('timeout','Load timeout for modules: '+ra,null,ra),B.contextName=ta.contextName,ob(B);$a&&U(sa,function(Oa){pb(Oa,{},{})});va&&!la||!Ta||!ha&&!oa||xa||(xa=q(function(){xa=0;gb()},50));da=
20
- !1}}function Ia(B){m(Ua,B[0])||qb(Ya(B[0],null,!0)).init(B[1],B[2])}function Gb(B){B=B.currentTarget||B.srcElement;var la=ta.onScriptLoad;B.detachEvent&&!O?B.detachEvent('onreadystatechange',la):B.removeEventListener('load',la,!1);la=ta.onScriptError;B.detachEvent&&!O||B.removeEventListener('error',la,!1);return{node:B,id:B&&B.getAttribute('data-requiremodule')}}function Jb(){for(Kb();Aa.length;){var B=Aa.shift();if(B[0]===null)return ob(n('mismatch','Mismatched anonymous define() module: '+B[B.length-
21
- 1]));Ia(B)}ta.defQueueMap={}}var da,xa,ja={waitSeconds:7,baseUrl:'./',paths:{},bundles:{},pkgs:{},shim:{},config:{}},C={},P={},ma={},Aa=[],Ua={},cb={},k={},w=1,G=1;var ia={require:function(B){return B.require?B.require:B.require=ta.makeRequire(B.map)},exports:function(B){B.usingExports=!0;if(B.map.isDefine)return B.exports?Ua[B.map.id]=B.exports:B.exports=Ua[B.map.id]={}},module:function(B){return B.module?B.module:B.module={id:B.map.id,uri:B.map.url,config:function(){return E(ja.config,B.map.id)||
22
- {}},exports:B.exports||(B.exports={})}}};var ca=function(B){this.events=E(ma,B.id)||{};this.map=B;this.shim=E(ja.shim,B.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};ca.prototype={init:function(B,la,va,ra){ra=ra||{};if(!this.inited){this.factory=la;if(va)this.on('error',va);else this.events.error&&(va=l(this,function(sa){this.emit('error',sa)}));this.depMaps=B&&B.slice(0);this.errback=va;this.inited=!0;this.ignore=ra.ignore;ra.enabled||this.enabled?
9
+ (function(f,q){function F(ba,Ga){return Ga||''}function H(ba){return pa.call(ba)==='[object Function]'}function M(ba){return pa.call(ba)==='[object Array]'}function V(ba,Ga){if(ba){var Ka;for(Ka=0;Ka<ba.length&&(!ba[Ka]||!Ga(ba[Ka],Ka,ba));Ka+=1);}}function D(ba,Ga){if(ba){var Ka;for(Ka=ba.length-1;Ka>-1&&(!ba[Ka]||!Ga(ba[Ka],Ka,ba));--Ka);}}function m(ba,Ga){return K.call(ba,Ga)}function E(ba,Ga){return m(ba,Ga)&&ba[Ga]}function A(ba,Ga){for(var Ka in ba)if(m(ba,Ka)&&Da.indexOf(Ka)==-1&&Ga(ba[Ka],
10
+ Ka))break}function aa(ba,Ga,Ka,$a){Ga&&A(Ga,function(ib,Ya){if(Ka||!m(ba,Ya))!$a||typeof ib!=='object'||!ib||M(ib)||H(ib)||ib instanceof RegExp?ba[Ya]=ib:(ba[Ya]||(ba[Ya]={}),aa(ba[Ya],ib,Ka,$a))});return ba}function l(ba,Ga){return function(){return Ga.apply(ba,arguments)}}function W(ba){throw ba;}function r(ba){if(!ba)return ba;var Ga=f;V(ba.split('.'),function(Ka){Ga=Ga[Ka]});return Ga}function n(ba,Ga,Ka,$a){Ga=Error(Ga+'\nhttps://requirejs.org/docs/errors.html#'+ba);Ga.requireType=ba;Ga.requireModules=
11
+ $a;Ka&&(Ga.originalError=Ka);return Ga}function Z(){if(L&&L.readyState==='interactive')return L;D(document.getElementsByTagName('script'),function(ba){if(ba.readyState==='interactive')return L=ba});return L}var U,Y,v,L,y,x,S,X=/\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg,g=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,Q=/\.js$/,ka=/^\.\//;var ua=Object.prototype;var pa=ua.toString,K=ua.hasOwnProperty,fa=!(typeof window==='undefined'||typeof navigator==='undefined'||!window.document),na=!fa&&typeof importScripts!==
12
+ 'undefined',Ia=fa&&navigator.platform==='PLAYSTATION 3'?/^complete$/:/^(complete|loaded)$/,O=typeof opera!=='undefined'&&opera.toString()==='[object Opera]',T={},ya={},ja=[],Ea=!1,Da=['__proto__','constructor'];if(typeof define==='undefined'){if(typeof requirejs!=='undefined'){if(H(requirejs))return;ya=requirejs;requirejs=void 0}typeof require==='undefined'||H(require)||(ya=require,require=void 0);var wa=requirejs=function(ba,Ga,Ka,$a){var ib='_';if(!M(ba)&&typeof ba!=='string'){var Ya=ba;M(Ga)?(ba=
13
+ Ga,Ga=Ka,Ka=$a):ba=[]}Ya&&Ya.context&&(ib=Ya.context);($a=E(T,ib))||($a=T[ib]=wa.s.newContext(ib));Ya&&$a.configure(Ya);return $a.require(ba,Ga,Ka)};wa.config=function(ba){return wa(ba)};wa.nextTick=typeof q!=='undefined'?function(ba){q(ba,4)}:function(ba){ba()};require||=wa;wa.version='2.3.7';wa.jsExtRegExp=/^\/|:|\?|\.js$/;wa.isBrowser=fa;ua=wa.s={contexts:T,newContext:function(ba){function Ga(B,la,va){var qa;la=la&&la.split('/');var ra=ia.map,Ta=ra&&ra['*'];if(B){B=B.split('/');var Za=B.length-
14
+ 1;ia.nodeIdCompat&&Q.test(B[Za])&&(B[Za]=B[Za].replace(Q,''));B[0].charAt(0)==='.'&&la&&(Za=la.slice(0,la.length-1),B=Za.concat(B));Za=B;for(qa=0;qa<Za.length;qa++){var Oa=Za[qa];Oa==='.'?(Za.splice(qa,1),--qa):Oa==='..'&&qa!==0&&(qa!==1||Za[2]!=='..')&&Za[qa-1]!=='..'&&qa>0&&(Za.splice(qa-1,2),qa-=2)}B=B.join('/')}if(va&&ra&&(la||Ta)){Za=B.split('/');qa=Za.length;a:for(;qa>0;--qa){var lb=Za.slice(0,qa).join('/');if(la)for(Oa=la.length;Oa>0;--Oa)if(va=E(ra,la.slice(0,Oa).join('/')))if(va=E(va,lb)){var mb=
15
+ va;var vb=qa;break a}if(!Ab&&Ta&&E(Ta,lb)){var Ab=E(Ta,lb);var ub=qa}}!mb&&Ab&&(mb=Ab,vb=ub);mb&&(Za.splice(0,vb,mb),B=Za.join('/'))}return(mb=E(ia.pkgs,B))?mb:B}function Ka(B){fa&&V(document.getElementsByTagName('script'),function(la){if(la.getAttribute('data-requiremodule')===B&&la.getAttribute('data-requirecontext')===ta.contextName)return la.parentNode.removeChild(la),!0})}function $a(B){var la=E(ia.paths,B);if(la&&M(la)&&la.length>1)return la.shift(),ta.require.undef(B),ta.makeRequire(null,{skipMap:!0})([B]),
16
+ !0}function ib(B){var la=B?B.indexOf('!'):-1;if(la>-1){var va=B.substring(0,la);B=B.substring(la+1,B.length)}return[va,B]}function Ya(B,la,va,qa){var ra=null,Ta=la?la.name:null,Za=B,Oa=!0,lb='';B||(Oa=!1,B='_@r'+(w+=1));B=ib(B);ra=B[0];B=B[1];if(ra){ra=Ga(ra,Ta,qa);var mb=E(Ua,ra)}if(B)if(ra)lb=va?B:mb&&mb.normalize?mb.normalize(B,function(Ab){return Ga(Ab,Ta,qa)}):B.indexOf('!')===-1?Ga(B,Ta,qa):B;else{lb=Ga(B,Ta,qa);B=ib(lb);ra=B[0];lb=B[1];va=!0;var vb=ta.nameToUrl(lb)}va=!ra||mb||va?'':'_unnormalized'+
17
+ (G+=1);return{prefix:ra,name:lb,parentMap:la,unnormalized:!!va,url:vb,originalName:Za,isDefine:Oa,id:(ra?ra+'!'+lb:lb)+va}}function sb(B){var la=B.id,va=E(C,la);va||=C[la]=new ta.Module(B);return va}function Cb(B,la,va){var qa=B.id,ra=E(C,qa);if(!m(Ua,qa)||ra&&!ra.defineEmitComplete)if(ra=sb(B),ra.error&&la==='error')va(ra.error);else ra.on(la,va);else la==='defined'&&va(Ua[qa])}function qb(B,la){var va=B.requireModules,qa=!1;if(la)la(B);else if(V(va,function(ra){if(ra=E(C,ra))ra.error=B,ra.events.error&&
18
+ (qa=!0,ra.emit('error',B))}),!qa)wa.onError(B)}function Jb(){ja.length&&(V(ja,function(B){var la=B[0];typeof la==='string'&&(ta.defQueueMap[la]=!0);Ba.push(B)}),ja=[])}function Mb(B){delete C[B];delete P[B]}function rb(B,la,va){var qa=B.map.id;B.error?B.emit('error',B.error):(la[qa]=!0,V(B.depMaps,function(ra,Ta){ra=ra.id;var Za=E(C,ra);!Za||B.depMatched[Ta]||va[ra]||(E(la,ra)?(B.defineDep(Ta,Ua[ra]),B.check()):rb(Za,la,va))}),va[qa]=!0)}function gb(){var B,la,va=(B=ia.waitSeconds*1E3)&&ta.startTime+
19
+ B<(new Date).getTime(),qa=[],ra=[],Ta=!1,Za=!0;if(!da){da=!0;A(P,function(Oa){var lb=Oa.map,mb=lb.id;if(Oa.enabled&&(lb.isDefine||ra.push(Oa),!Oa.error))if(!Oa.inited&&va)$a(mb)?Ta=la=!0:(qa.push(mb),Ka(mb));else if(!Oa.inited&&Oa.fetched&&lb.isDefine&&(Ta=!0,!lb.prefix))return Za=!1});if(va&&qa.length)return B=n('timeout','Load timeout for modules: '+qa,null,qa),B.contextName=ta.contextName,qb(B);Za&&V(ra,function(Oa){rb(Oa,{},{})});va&&!la||!Ta||!fa&&!na||xa||(xa=q(function(){xa=0;gb()},50));da=
20
+ !1}}function Ha(B){m(Ua,B[0])||sb(Ya(B[0],null,!0)).init(B[1],B[2])}function Fb(B){B=B.currentTarget||B.srcElement;var la=ta.onScriptLoad;B.detachEvent&&!O?B.detachEvent('onreadystatechange',la):B.removeEventListener('load',la,!1);la=ta.onScriptError;B.detachEvent&&!O||B.removeEventListener('error',la,!1);return{node:B,id:B&&B.getAttribute('data-requiremodule')}}function Ib(){for(Jb();Ba.length;){var B=Ba.shift();if(B[0]===null)return qb(n('mismatch','Mismatched anonymous define() module: '+B[B.length-
21
+ 1]));Ha(B)}ta.defQueueMap={}}var da,xa,ia={waitSeconds:7,baseUrl:'./',paths:{},bundles:{},pkgs:{},shim:{},config:{}},C={},P={},ma={},Ba=[],Ua={},cb={},k={},w=1,G=1;var ha={require:function(B){return B.require?B.require:B.require=ta.makeRequire(B.map)},exports:function(B){B.usingExports=!0;if(B.map.isDefine)return B.exports?Ua[B.map.id]=B.exports:B.exports=Ua[B.map.id]={}},module:function(B){return B.module?B.module:B.module={id:B.map.id,uri:B.map.url,config:function(){return E(ia.config,B.map.id)||
22
+ {}},exports:B.exports||(B.exports={})}}};var ca=function(B){this.events=E(ma,B.id)||{};this.map=B;this.shim=E(ia.shim,B.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};ca.prototype={init:function(B,la,va,qa){qa=qa||{};if(!this.inited){this.factory=la;if(va)this.on('error',va);else this.events.error&&(va=l(this,function(ra){this.emit('error',ra)}));this.depMaps=B&&B.slice(0);this.errback=va;this.inited=!0;this.ignore=qa.ignore;qa.enabled||this.enabled?
23
23
  this.enable():this.check()}},defineDep:function(B,la){this.depMatched[B]||(this.depMatched[B]=!0,--this.depCount,this.depExports[B]=la)},fetch:function(){if(!this.fetched){this.fetched=!0;ta.startTime=(new Date).getTime();var B=this.map;if(this.shim)ta.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],l(this,function(){return B.prefix?this.callPlugin():this.load()}));else return B.prefix?this.callPlugin():this.load()}},load:function(){var B=this.map.url;cb[B]||(cb[B]=!0,ta.load(this.map.id,
24
- B))},check:function(){if(this.enabled&&!this.enabling){var B=this.map.id;var la=this.depExports;var va=this.exports,ra=this.factory;if(!this.inited)m(ta.defQueueMap,B)||this.fetch();else if(this.error)this.emit('error',this.error);else if(!this.defining){this.defining=!0;if(this.depCount<1&&!this.defined){if(H(ra)){if(this.events.error&&this.map.isDefine||wa.onError!==W)try{va=ta.execCb(B,ra,la,va)}catch($a){var sa=$a}else va=ta.execCb(B,ra,la,va);this.map.isDefine&&va===void 0&&((la=this.module)?
25
- va=la.exports:this.usingExports&&(va=this.exports));if(sa)return sa.requireMap=this.map,sa.requireModules=this.map.isDefine?[this.map.id]:null,sa.requireType=this.map.isDefine?'define':'require',ob(this.error=sa)}else va=ra;this.exports=va;if(this.map.isDefine&&!this.ignore&&(Ua[B]=va,wa.onResourceLoad)){var Ta=[];U(this.depMaps,function($a){Ta.push($a.normalizedMap||$a)});wa.onResourceLoad(ta,this.map,Ta)}Mb(B);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=
26
- !0,this.emit('defined',this.exports),this.defineEmitComplete=!0)}}},callPlugin:function(){var B=this.map,la=B.id,va=Ya(B.prefix);this.depMaps.push(va);Cb(va,'defined',l(this,function(ra){var sa=E(k,this.map.id),Ta=this.map.name,$a=this.map.parentMap?this.map.parentMap.name:null,Oa=ta.makeRequire(B.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){ra.normalize&&(Ta=ra.normalize(Ta,function(vb){return Ga(vb,$a,!0)})||'');var lb=Ya(B.prefix+'!'+Ta,this.map.parentMap,!0);Cb(lb,'defined',l(this,
27
- function(vb){this.map.normalizedMap=lb;this.init([],function(){return vb},null,{enabled:!0,ignore:!0})}));if(ra=E(C,lb.id)){this.depMaps.push(lb);if(this.events.error)ra.on('error',l(this,function(vb){this.emit('error',vb)}));ra.enable()}}else if(sa)this.map.url=ta.nameToUrl(sa),this.load();else{var nb=l(this,function(vb){this.init([],function(){return vb},null,{enabled:!0})});nb.error=l(this,function(vb){this.inited=!0;this.error=vb;vb.requireModules=[la];A(C,function(zb){zb.map.id.indexOf(la+'_unnormalized')===
28
- 0&&Mb(zb.map.id)});ob(vb)});nb.fromText=l(this,function(vb,zb){var tb=B.name,Tb=Ya(tb),Ab=Ea;zb&&(vb=zb);Ab&&(Ea=!1);qb(Tb);m(ja.config,la)&&(ja.config[tb]=ja.config[la]);try{wa.exec(vb)}catch(Wb){return ob(n('fromtexteval','fromText eval for '+la+' failed: '+Wb,Wb,[la]))}Ab&&(Ea=!0);this.depMaps.push(Tb);ta.completeLoad(tb);Oa([tb],nb)});ra.load(B.name,Oa,nb,ja)}}));ta.enable(va,this);this.pluginMaps[va.id]=va},enable:function(){P[this.map.id]=this;this.enabling=this.enabled=!0;U(this.depMaps,l(this,
29
- function(B,la){var va;if(typeof B==='string'){B=Ya(B,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[la]=B;if(va=E(ia,B.id)){this.depExports[la]=va(this);return}this.depCount+=1;Cb(B,'defined',l(this,function(sa){this.undefed||(this.defineDep(la,sa),this.check())}));this.errback?Cb(B,'error',l(this,this.errback)):this.events.error&&Cb(B,'error',l(this,function(sa){this.emit('error',sa)}))}va=B.id;var ra=C[va];m(ia,va)||!ra||ra.enabled||ta.enable(B,this)}));A(this.pluginMaps,
30
- l(this,function(B){var la=E(C,B.id);la&&!la.enabled&&ta.enable(B,this)}));this.enabling=!1;this.check()},on:function(B,la){var va=this.events[B];va||=this.events[B]=[];va.push(la)},emit:function(B,la){U(this.events[B],function(va){va(la)});B==='error'&&delete this.events[B]}};var ta={config:ja,contextName:ba,registry:C,defined:Ua,urlFetched:cb,defQueue:Aa,defQueueMap:{},Module:ca,makeModuleMap:Ya,nextTick:wa.nextTick,onError:ob,configure:function(B){B.baseUrl&&B.baseUrl.charAt(B.baseUrl.length-1)!==
31
- '/'&&(B.baseUrl+='/');if(typeof B.urlArgs==='string'){var la=B.urlArgs;B.urlArgs=function(sa,Ta){return(Ta.indexOf('?')===-1?'?':'&')+la}}var va=ja.shim,ra={paths:!0,bundles:!0,config:!0,map:!0};A(B,function(sa,Ta){ra[Ta]?(ja[Ta]||(ja[Ta]={}),aa(ja[Ta],sa,!0,!0)):ja[Ta]=sa});B.bundles&&A(B.bundles,function(sa,Ta){U(sa,function($a){$a!==Ta&&(k[$a]=Ta)})});B.shim&&(A(B.shim,function(sa,Ta){N(sa)&&(sa={deps:sa});!sa.exports&&!sa.init||sa.exportsFn||(sa.exportsFn=ta.makeShimExports(sa));va[Ta]=sa}),ja.shim=
32
- va);B.packages&&U(B.packages,function(sa){sa=typeof sa==='string'?{name:sa}:sa;var Ta=sa.name;sa.location&&(ja.paths[Ta]=sa.location);ja.pkgs[Ta]=sa.name+'/'+(sa.main||'main').replace(fa,'').replace(V,'')});A(C,function(sa,Ta){sa.inited||sa.map.unnormalized||(sa.map=Ya(Ta,null,!0))});(B.deps||B.callback)&&ta.require(B.deps||[],B.callback)},makeShimExports:function(B){return function(){var la;B.init&&(la=B.init.apply(f,arguments));return la||B.exports&&r(B.exports)}},makeRequire:function(B,la){function va(ra,
33
- sa,Ta){var $a;la.enableBuildCallback&&sa&&H(sa)&&(sa.__requireJsBuild=!0);if(typeof ra==='string'){if(H(sa))return ob(n('requireargs','Invalid require call'),Ta);if(B&&m(ia,ra))return ia[ra](C[B.id]);if(wa.get)return wa.get(ta,ra,B,va);var Oa=Ya(ra,B,!1,!0);Oa=Oa.id;return m(Ua,Oa)?Ua[Oa]:ob(n('notloaded','Module name "'+Oa+'" has not been loaded yet for context: '+ba+(B?'':'. Use require([])')))}Jb();ta.nextTick(function(){Jb();$a=qb(Ya(null,B));$a.skipMap=la.skipMap;$a.init(ra,sa,Ta,{enabled:!0});
34
- gb()});return va}la=la||{};aa(va,{isBrowser:ha,toUrl:function(ra){var sa=ra.lastIndexOf('.'),Ta=ra.split('/')[0];if(sa!==-1&&(Ta!=='.'&&Ta!=='..'||sa>1)){var $a=ra.substring(sa,ra.length);ra=ra.substring(0,sa)}return ta.nameToUrl(Ga(ra,B&&B.id,!0),$a,!0)},defined:function(ra){return m(Ua,Ya(ra,B,!1,!0).id)},specified:function(ra){ra=Ya(ra,B,!1,!0).id;return m(Ua,ra)||m(C,ra)}});B||(va.undef=function(ra){Kb();var sa=Ya(ra,B,!0),Ta=E(C,ra);Ta.undefed=!0;La(ra);delete Ua[ra];delete cb[sa.url];delete ma[ra];
35
- D(Aa,function($a,Oa){$a[0]===ra&&Aa.splice(Oa,1)});delete ta.defQueueMap[ra];Ta&&(Ta.events.defined&&(ma[ra]=Ta.events),Mb(ra))});return va},enable:function(B){E(C,B.id)&&qb(B).enable()},completeLoad:function(B){var la=E(ja.shim,B)||{},va=la.exports;for(Kb();Aa.length;){var ra=Aa.shift();if(ra[0]===null){ra[0]=B;if(sa)break;var sa=!0}else ra[0]===B&&(sa=!0);Ia(ra)}ta.defQueueMap={};ra=E(C,B);if(!sa&&!m(Ua,B)&&ra&&!ra.inited)if(!ja.enforceDefine||va&&r(va))Ia([B,la.deps||[],la.exportsFn]);else return ab(B)?
36
- void 0:ob(n('nodefine','No define call for '+B,null,[B]));gb()},nameToUrl:function(B,la,va){var ra,sa;(ra=E(ja.pkgs,B))&&(B=ra);if(ra=E(k,B))return ta.nameToUrl(ra,la,va);if(wa.jsExtRegExp.test(B))ra=B+(la||'');else{ra=ja.paths;var Ta=B.split('/');for(sa=Ta.length;sa>0;--sa){var $a=Ta.slice(0,sa).join('/');if($a=E(ra,$a)){N($a)&&($a=$a[0]);Ta.splice(0,sa,$a);break}}ra=Ta.join('/');ra+=la||(/^data:|^blob:|\?/.test(ra)||va?'':'.js');ra=(ra.charAt(0)==='/'||ra.match(/^[\w\+\.\-]+:/)?'':ja.baseUrl)+ra}return ja.urlArgs&&
37
- !/^blob:/.test(ra)?ra+ja.urlArgs(B,ra):ra},load:function(B,la){wa.load(ta,B,la)},execCb:function(B,la,va,ra){return la.apply(ra,va)},onScriptLoad:function(B){if(B.type==='load'||Ja.test((B.currentTarget||B.srcElement).readyState))L=null,B=Gb(B),ta.completeLoad(B.id)},onScriptError:function(B){var la=Gb(B);if(!ab(la.id)){var va=[];A(C,function(ra,sa){sa.indexOf('_@r')!==0&&U(ra.depMaps,function(Ta){if(Ta.id===la.id)return va.push(sa),!0})});return ob(n('scripterror','Script error for "'+la.id+(va.length?
38
- '", needed by: '+va.join(', '):'"'),B,[la.id]))}}};ta.require=ta.makeRequire();return ta}};wa({});U(['toUrl','undef','defined','specified'],function(ba){wa[ba]=function(){var Ga=S._;return Ga.require[ba].apply(Ga,arguments)}});if(ha){var Va=ua.head=document.getElementsByTagName('head')[0];if(T=document.getElementsByTagName('base')[0])Va=ua.head=T.parentNode}wa.onError=W;wa.createNode=function(ba,Ga,La){Ga=ba.xhtml?document.createElementNS('http://www.w3.org/1999/xhtml','html:script'):document.createElement('script');
39
- Ga.type=ba.scriptType||'text/javascript';Ga.charset='utf-8';Ga.async=!0;return Ga};wa.load=function(ba,Ga,La){var ab=ba&&ba.config||{};if(ha){var ib=wa.createNode(ab,Ga,La);ib.setAttribute('data-requirecontext',ba.contextName);ib.setAttribute('data-requiremodule',Ga);!ib.attachEvent||ib.attachEvent.toString&&ib.attachEvent.toString().indexOf('[native code')<0||O?(ib.addEventListener('load',ba.onScriptLoad,!1),ib.addEventListener('error',ba.onScriptError,!1)):(Ea=!0,ib.attachEvent('onreadystatechange',
40
- ba.onScriptLoad));ib.src=La;if(ab.onNodeCreated)ab.onNodeCreated(ib,ab,Ga,La);y=ib;T?Va.insertBefore(ib,T):Va.appendChild(ib);y=null;return ib}if(oa)try{q(function(){},0),importScripts(La),ba.completeLoad(Ga)}catch(Ya){ba.onError(n('importscripts','importScripts failed for '+Ga+' at '+La,Ya,[Ga]))}};ha&&!ya.skipDataMain&&D(document.getElementsByTagName('script'),function(ba){Va||(Va=ba.parentNode);if(Y=ba.getAttribute('data-main'))return x=Y,ya.baseUrl||x.indexOf('!')!==-1||(v=x.split('/'),x=v.pop(),
41
- R=v.length?v.join('/')+'/':'./',ya.baseUrl=R),x=x.replace(V,''),wa.jsExtRegExp.test(x)&&(x=Y),ya.deps=ya.deps?ya.deps.concat(x):[x],!0});define=function(ba,Ga,La){var ab;typeof ba!=='string'&&(La=Ga,Ga=ba,ba=null);N(Ga)||(La=Ga,Ga=null);!Ga&&H(La)&&(Ga=[],La.length&&(La.toString().replace(X,F).replace(g,function(Ya,qb){Ga.push(qb)}),Ga=(La.length===1?['require']:['require','exports','module']).concat(Ga)));if(Ea&&(ab=y||Z())){ba||=ab.getAttribute('data-requiremodule');var ib=S[ab.getAttribute('data-requirecontext')]}ib?
42
- (ib.defQueue.push([ba,Ga,La]),ib.defQueueMap[ba]=!0):ka.push([ba,Ga,La])};define.amd={jQuery:!0};wa.exec=function(ba){throw Error('require.exec() is disabled in this build: gina ships no transpiler loader plugins');};wa(ya)}})(this,typeof setTimeout==='undefined'?void 0:setTimeout);define('requireLib',function(){});
24
+ B))},check:function(){if(this.enabled&&!this.enabling){var B=this.map.id;var la=this.depExports;var va=this.exports,qa=this.factory;if(!this.inited)m(ta.defQueueMap,B)||this.fetch();else if(this.error)this.emit('error',this.error);else if(!this.defining){this.defining=!0;if(this.depCount<1&&!this.defined){if(H(qa)){if(this.events.error&&this.map.isDefine||wa.onError!==W)try{va=ta.execCb(B,qa,la,va)}catch(Za){var ra=Za}else va=ta.execCb(B,qa,la,va);this.map.isDefine&&va===void 0&&((la=this.module)?
25
+ va=la.exports:this.usingExports&&(va=this.exports));if(ra)return ra.requireMap=this.map,ra.requireModules=this.map.isDefine?[this.map.id]:null,ra.requireType=this.map.isDefine?'define':'require',qb(this.error=ra)}else va=qa;this.exports=va;if(this.map.isDefine&&!this.ignore&&(Ua[B]=va,wa.onResourceLoad)){var Ta=[];V(this.depMaps,function(Za){Ta.push(Za.normalizedMap||Za)});wa.onResourceLoad(ta,this.map,Ta)}Mb(B);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=
26
+ !0,this.emit('defined',this.exports),this.defineEmitComplete=!0)}}},callPlugin:function(){var B=this.map,la=B.id,va=Ya(B.prefix);this.depMaps.push(va);Cb(va,'defined',l(this,function(qa){var ra=E(k,this.map.id),Ta=this.map.name,Za=this.map.parentMap?this.map.parentMap.name:null,Oa=ta.makeRequire(B.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){qa.normalize&&(Ta=qa.normalize(Ta,function(vb){return Ga(vb,Za,!0)})||'');var lb=Ya(B.prefix+'!'+Ta,this.map.parentMap,!0);Cb(lb,'defined',l(this,
27
+ function(vb){this.map.normalizedMap=lb;this.init([],function(){return vb},null,{enabled:!0,ignore:!0})}));if(qa=E(C,lb.id)){this.depMaps.push(lb);if(this.events.error)qa.on('error',l(this,function(vb){this.emit('error',vb)}));qa.enable()}}else if(ra)this.map.url=ta.nameToUrl(ra),this.load();else{var mb=l(this,function(vb){this.init([],function(){return vb},null,{enabled:!0})});mb.error=l(this,function(vb){this.inited=!0;this.error=vb;vb.requireModules=[la];A(C,function(Ab){Ab.map.id.indexOf(la+'_unnormalized')===
28
+ 0&&Mb(Ab.map.id)});qb(vb)});mb.fromText=l(this,function(vb,Ab){var ub=B.name,Tb=Ya(ub),Bb=Ea;Ab&&(vb=Ab);Bb&&(Ea=!1);sb(Tb);m(ia.config,la)&&(ia.config[ub]=ia.config[la]);try{wa.exec(vb)}catch(Wb){return qb(n('fromtexteval','fromText eval for '+la+' failed: '+Wb,Wb,[la]))}Bb&&(Ea=!0);this.depMaps.push(Tb);ta.completeLoad(ub);Oa([ub],mb)});qa.load(B.name,Oa,mb,ia)}}));ta.enable(va,this);this.pluginMaps[va.id]=va},enable:function(){P[this.map.id]=this;this.enabling=this.enabled=!0;V(this.depMaps,l(this,
29
+ function(B,la){var va;if(typeof B==='string'){B=Ya(B,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[la]=B;if(va=E(ha,B.id)){this.depExports[la]=va(this);return}this.depCount+=1;Cb(B,'defined',l(this,function(ra){this.undefed||(this.defineDep(la,ra),this.check())}));this.errback?Cb(B,'error',l(this,this.errback)):this.events.error&&Cb(B,'error',l(this,function(ra){this.emit('error',ra)}))}va=B.id;var qa=C[va];m(ha,va)||!qa||qa.enabled||ta.enable(B,this)}));A(this.pluginMaps,
30
+ l(this,function(B){var la=E(C,B.id);la&&!la.enabled&&ta.enable(B,this)}));this.enabling=!1;this.check()},on:function(B,la){var va=this.events[B];va||=this.events[B]=[];va.push(la)},emit:function(B,la){V(this.events[B],function(va){va(la)});B==='error'&&delete this.events[B]}};var ta={config:ia,contextName:ba,registry:C,defined:Ua,urlFetched:cb,defQueue:Ba,defQueueMap:{},Module:ca,makeModuleMap:Ya,nextTick:wa.nextTick,onError:qb,configure:function(B){B.baseUrl&&B.baseUrl.charAt(B.baseUrl.length-1)!==
31
+ '/'&&(B.baseUrl+='/');if(typeof B.urlArgs==='string'){var la=B.urlArgs;B.urlArgs=function(ra,Ta){return(Ta.indexOf('?')===-1?'?':'&')+la}}var va=ia.shim,qa={paths:!0,bundles:!0,config:!0,map:!0};A(B,function(ra,Ta){qa[Ta]?(ia[Ta]||(ia[Ta]={}),aa(ia[Ta],ra,!0,!0)):ia[Ta]=ra});B.bundles&&A(B.bundles,function(ra,Ta){V(ra,function(Za){Za!==Ta&&(k[Za]=Ta)})});B.shim&&(A(B.shim,function(ra,Ta){M(ra)&&(ra={deps:ra});!ra.exports&&!ra.init||ra.exportsFn||(ra.exportsFn=ta.makeShimExports(ra));va[Ta]=ra}),ia.shim=
32
+ va);B.packages&&V(B.packages,function(ra){ra=typeof ra==='string'?{name:ra}:ra;var Ta=ra.name;ra.location&&(ia.paths[Ta]=ra.location);ia.pkgs[Ta]=ra.name+'/'+(ra.main||'main').replace(ka,'').replace(Q,'')});A(C,function(ra,Ta){ra.inited||ra.map.unnormalized||(ra.map=Ya(Ta,null,!0))});(B.deps||B.callback)&&ta.require(B.deps||[],B.callback)},makeShimExports:function(B){return function(){var la;B.init&&(la=B.init.apply(f,arguments));return la||B.exports&&r(B.exports)}},makeRequire:function(B,la){function va(qa,
33
+ ra,Ta){var Za;la.enableBuildCallback&&ra&&H(ra)&&(ra.__requireJsBuild=!0);if(typeof qa==='string'){if(H(ra))return qb(n('requireargs','Invalid require call'),Ta);if(B&&m(ha,qa))return ha[qa](C[B.id]);if(wa.get)return wa.get(ta,qa,B,va);var Oa=Ya(qa,B,!1,!0);Oa=Oa.id;return m(Ua,Oa)?Ua[Oa]:qb(n('notloaded','Module name "'+Oa+'" has not been loaded yet for context: '+ba+(B?'':'. Use require([])')))}Ib();ta.nextTick(function(){Ib();Za=sb(Ya(null,B));Za.skipMap=la.skipMap;Za.init(qa,ra,Ta,{enabled:!0});
34
+ gb()});return va}la=la||{};aa(va,{isBrowser:fa,toUrl:function(qa){var ra=qa.lastIndexOf('.'),Ta=qa.split('/')[0];if(ra!==-1&&(Ta!=='.'&&Ta!=='..'||ra>1)){var Za=qa.substring(ra,qa.length);qa=qa.substring(0,ra)}return ta.nameToUrl(Ga(qa,B&&B.id,!0),Za,!0)},defined:function(qa){return m(Ua,Ya(qa,B,!1,!0).id)},specified:function(qa){qa=Ya(qa,B,!1,!0).id;return m(Ua,qa)||m(C,qa)}});B||(va.undef=function(qa){Jb();var ra=Ya(qa,B,!0),Ta=E(C,qa);Ta.undefed=!0;Ka(qa);delete Ua[qa];delete cb[ra.url];delete ma[qa];
35
+ D(Ba,function(Za,Oa){Za[0]===qa&&Ba.splice(Oa,1)});delete ta.defQueueMap[qa];Ta&&(Ta.events.defined&&(ma[qa]=Ta.events),Mb(qa))});return va},enable:function(B){E(C,B.id)&&sb(B).enable()},completeLoad:function(B){var la=E(ia.shim,B)||{},va=la.exports;for(Jb();Ba.length;){var qa=Ba.shift();if(qa[0]===null){qa[0]=B;if(ra)break;var ra=!0}else qa[0]===B&&(ra=!0);Ha(qa)}ta.defQueueMap={};qa=E(C,B);if(!ra&&!m(Ua,B)&&qa&&!qa.inited)if(!ia.enforceDefine||va&&r(va))Ha([B,la.deps||[],la.exportsFn]);else return $a(B)?
36
+ void 0:qb(n('nodefine','No define call for '+B,null,[B]));gb()},nameToUrl:function(B,la,va){var qa,ra;(qa=E(ia.pkgs,B))&&(B=qa);if(qa=E(k,B))return ta.nameToUrl(qa,la,va);if(wa.jsExtRegExp.test(B))qa=B+(la||'');else{qa=ia.paths;var Ta=B.split('/');for(ra=Ta.length;ra>0;--ra){var Za=Ta.slice(0,ra).join('/');if(Za=E(qa,Za)){M(Za)&&(Za=Za[0]);Ta.splice(0,ra,Za);break}}qa=Ta.join('/');qa+=la||(/^data:|^blob:|\?/.test(qa)||va?'':'.js');qa=(qa.charAt(0)==='/'||qa.match(/^[\w\+\.\-]+:/)?'':ia.baseUrl)+qa}return ia.urlArgs&&
37
+ !/^blob:/.test(qa)?qa+ia.urlArgs(B,qa):qa},load:function(B,la){wa.load(ta,B,la)},execCb:function(B,la,va,qa){return la.apply(qa,va)},onScriptLoad:function(B){if(B.type==='load'||Ia.test((B.currentTarget||B.srcElement).readyState))L=null,B=Fb(B),ta.completeLoad(B.id)},onScriptError:function(B){var la=Fb(B);if(!$a(la.id)){var va=[];A(C,function(qa,ra){ra.indexOf('_@r')!==0&&V(qa.depMaps,function(Ta){if(Ta.id===la.id)return va.push(ra),!0})});return qb(n('scripterror','Script error for "'+la.id+(va.length?
38
+ '", needed by: '+va.join(', '):'"'),B,[la.id]))}}};ta.require=ta.makeRequire();return ta}};wa({});V(['toUrl','undef','defined','specified'],function(ba){wa[ba]=function(){var Ga=T._;return Ga.require[ba].apply(Ga,arguments)}});if(fa){var Va=ua.head=document.getElementsByTagName('head')[0];if(U=document.getElementsByTagName('base')[0])Va=ua.head=U.parentNode}wa.onError=W;wa.createNode=function(ba,Ga,Ka){Ga=ba.xhtml?document.createElementNS('http://www.w3.org/1999/xhtml','html:script'):document.createElement('script');
39
+ Ga.type=ba.scriptType||'text/javascript';Ga.charset='utf-8';Ga.async=!0;return Ga};wa.load=function(ba,Ga,Ka){var $a=ba&&ba.config||{};if(fa){var ib=wa.createNode($a,Ga,Ka);ib.setAttribute('data-requirecontext',ba.contextName);ib.setAttribute('data-requiremodule',Ga);!ib.attachEvent||ib.attachEvent.toString&&ib.attachEvent.toString().indexOf('[native code')<0||O?(ib.addEventListener('load',ba.onScriptLoad,!1),ib.addEventListener('error',ba.onScriptError,!1)):(Ea=!0,ib.attachEvent('onreadystatechange',
40
+ ba.onScriptLoad));ib.src=Ka;if($a.onNodeCreated)$a.onNodeCreated(ib,$a,Ga,Ka);y=ib;U?Va.insertBefore(ib,U):Va.appendChild(ib);y=null;return ib}if(na)try{q(function(){},0),importScripts(Ka),ba.completeLoad(Ga)}catch(Ya){ba.onError(n('importscripts','importScripts failed for '+Ga+' at '+Ka,Ya,[Ga]))}};fa&&!ya.skipDataMain&&D(document.getElementsByTagName('script'),function(ba){Va||(Va=ba.parentNode);if(Y=ba.getAttribute('data-main'))return x=Y,ya.baseUrl||x.indexOf('!')!==-1||(v=x.split('/'),x=v.pop(),
41
+ S=v.length?v.join('/')+'/':'./',ya.baseUrl=S),x=x.replace(Q,''),wa.jsExtRegExp.test(x)&&(x=Y),ya.deps=ya.deps?ya.deps.concat(x):[x],!0});define=function(ba,Ga,Ka){var $a;typeof ba!=='string'&&(Ka=Ga,Ga=ba,ba=null);M(Ga)||(Ka=Ga,Ga=null);!Ga&&H(Ka)&&(Ga=[],Ka.length&&(Ka.toString().replace(X,F).replace(g,function(Ya,sb){Ga.push(sb)}),Ga=(Ka.length===1?['require']:['require','exports','module']).concat(Ga)));if(Ea&&($a=y||Z())){ba||=$a.getAttribute('data-requiremodule');var ib=T[$a.getAttribute('data-requirecontext')]}ib?
42
+ (ib.defQueue.push([ba,Ga,Ka]),ib.defQueueMap[ba]=!0):ja.push([ba,Ga,Ka])};define.amd={jQuery:!0};wa.exec=function(ba){throw Error('require.exec() is disabled in this build: gina ships no transpiler loader plugins');};wa(ya)}})(this,typeof setTimeout==='undefined'?void 0:setTimeout);define('requireLib',function(){});
43
43
  function Merge(){var f=function(D){return D==='__proto__'||D==='constructor'||D==='prototype'},q=[],F=!1,H=function(D,m){var E=D;F||(typeof D=='object'&&Array.isArray(D),F=!0);typeof E=='undefined'&&(E=typeof m!='undefined'&&Array.isArray(m)?[]:{});var A=!1;typeof arguments[arguments.length-1]=='boolean'&&(A=arguments[arguments.length-1]);var aa=1,l=arguments.length,W,r;if(typeof E!=='object'&&typeof E!=='function')E=A?typeof arguments[2]=='undefined'?arguments[1]:arguments[2]:typeof arguments[0]==
44
- 'undefined'?arguments[1]:arguments[0];else for(;aa<l;++aa)if(typeof arguments[aa]!='boolean'&&(W=arguments[aa])!=null){if(typeof W!='object'){E=W;break}if(Array.isArray(W)&&Array.isArray(E))E=N(W,E,A);else for(var n in W)if(!f(n)){E||={name:null};var Z=E[n];var T=W[n];if(E!==T&&(T===null||typeof T!='object'||Z!==T))if(T&&(U(T)||(r=Array.isArray(T)))){var Y=!1;if(r){r=!1;if(Z&&Array.isArray(Z))var v=Z||[];else if(U(Z)){v=Z||{};E[n]=v;continue}else v=[];q=v;v=N(T,v,A);E[n]=v}else{v=Z&&U(Z)?Z:null;if(!v){Y=
45
- !0;v={};for(var L in T)f(L)||(v[L]=T[L])}if(A){for(L in T)f(L)||(typeof T[L]!='undefined'?Array.isArray(T[L])&&Array.isArray(v[L])?v[L]=N(T[L],v[L],A):v[L]=T[L]:Array.isArray(T[L])&&Array.isArray(v[L])&&(v[L]=N(T[L],v[L],A)));E[n]=v}else{for(L in T)f(L)||(typeof v[L]=='undefined'?Array.isArray(T[L])&&Array.isArray(v[L])?v[L]=N(T[L],v[L],A):v[L]=T[L]:Y&&Array.isArray(T[L])&&Array.isArray(v[L])&&(v[L]=N(T[L],v[L],A)));typeof Z=='boolean'||Y?Y&&(E[n]=v):E[n]=H(v,T,A)}}}else T!==void 0&&(E[n]=typeof Z==
46
- 'undefined'||Z==null||Z===T||A?T:Z)}}q=[];F=!1;return E},N=function(D,m,E){q=[];var A=[],aa=H.getKeyComparison();if(/^true$/i.test(E)){if(typeof D[0]=='object'&&D[0]!=null&&typeof D[0][aa]!='undefined'&&typeof m[0]=='object'&&m[0]!=null&&typeof m[0][aa]!='undefined'){q=Array.isArray(m)?Array.from(m):JSON.clone(m);var l=0;for(E=q.length;l<E;++l)q[l]!=null&&A.push(q[l][aa]);E=JSON.clone(D);var W=0;l=0;D=E.length;for(var r=Z||0,n=m.length;r<n;++r)if(m[r]!=null)a:for(l=l||0;l<D;++l)if(E[l]!=null)if(E[l][aa]===
44
+ 'undefined'?arguments[1]:arguments[0];else for(;aa<l;++aa)if(typeof arguments[aa]!='boolean'&&(W=arguments[aa])!=null){if(typeof W!='object'){E=W;break}if(Array.isArray(W)&&Array.isArray(E))E=M(W,E,A);else for(var n in W)if(!f(n)){E||={name:null};var Z=E[n];var U=W[n];if(E!==U&&(U===null||typeof U!='object'||Z!==U))if(U&&(V(U)||(r=Array.isArray(U)))){var Y=!1;if(r){r=!1;if(Z&&Array.isArray(Z))var v=Z||[];else if(V(Z)){v=Z||{};E[n]=v;continue}else v=[];q=v;v=M(U,v,A);E[n]=v}else{v=Z&&V(Z)?Z:null;if(!v){Y=
45
+ !0;v={};for(var L in U)f(L)||(v[L]=U[L])}if(A){for(L in U)f(L)||(typeof U[L]!='undefined'?Array.isArray(U[L])&&Array.isArray(v[L])?v[L]=M(U[L],v[L],A):v[L]=U[L]:Array.isArray(U[L])&&Array.isArray(v[L])&&(v[L]=M(U[L],v[L],A)));E[n]=v}else{for(L in U)f(L)||(typeof v[L]=='undefined'?Array.isArray(U[L])&&Array.isArray(v[L])?v[L]=M(U[L],v[L],A):v[L]=U[L]:Y&&Array.isArray(U[L])&&Array.isArray(v[L])&&(v[L]=M(U[L],v[L],A)));typeof Z=='boolean'||Y?Y&&(E[n]=v):E[n]=H(v,U,A)}}}else U!==void 0&&(E[n]=typeof Z==
46
+ 'undefined'||Z==null||Z===U||A?U:Z)}}q=[];F=!1;return E},M=function(D,m,E){q=[];var A=[],aa=H.getKeyComparison();if(/^true$/i.test(E)){if(typeof D[0]=='object'&&D[0]!=null&&typeof D[0][aa]!='undefined'&&typeof m[0]=='object'&&m[0]!=null&&typeof m[0][aa]!='undefined'){q=Array.isArray(m)?Array.from(m):JSON.clone(m);var l=0;for(E=q.length;l<E;++l)q[l]!=null&&A.push(q[l][aa]);E=JSON.clone(D);var W=0;l=0;D=E.length;for(var r=Z||0,n=m.length;r<n;++r)if(m[r]!=null)a:for(l=l||0;l<D;++l)if(E[l]!=null)if(E[l][aa]===
47
47
  m[r][aa]){A.indexOf(E[l][aa])>-1?(q[W]=E[l],++W):A.indexOf(E[l][aa])==-1&&(A.push(E[l][aa]),q[W]=E[l],++W);break a}else A.indexOf(E[l][aa])==-1&&(A.push(E[l][aa]),q.push(E[l]));return q}return Array.isArray(D)&&D.length==0||typeof D=='undefined'?/^true$/i.test(E)?D:m:D}if(D.length==0&&m.length>0)return q=m;if(m.length==0&&D.length>0)for(l=0;l<D.length;++l)m.push(D[l]);if(q.length==0&&m.length>0)for(l=0;l<m.length;++l)typeof m[l]=='object'&&m[l]!==null||q.indexOf(m[l])!=-1||q.push(m[l]);if(m.length>
48
48
  0){if(typeof D[0]!='undefined'&&typeof D[0]=='object'&&D[0]!=null&&typeof D[0][aa]!='undefined'&&typeof m[0]=='object'&&m[0]!=null&&typeof m[0][aa]!='undefined'){q=Array.isArray(m)?Array.from(m):JSON.clone(m);E=JSON.clone(D);var Z=null;l=0;for(D=q.length;l<D;++l)q[l]!=null&&A.push(q[l][aa]);for(l=0;l<D;++l)if(q[l]!=null)a:for(r=Z||0,n=E.length;r<n;++r)if(E[r]!=null&&typeof E[r][aa]!='undefined'&&E[r][aa]!==q[l][aa]){if(A.indexOf(E[r][aa])==-1){q.push(E[r]);A.push(E[r][aa]);Z=r+1;D<n&&++D;break a}}else if(E[r]!=
49
49
  null&&typeof E[r][aa]!='undefined'&&E[r][aa]===q[l][aa])Z=r+1;else break a;return q}for(l=0;l<D.length;++l)if(A=null,typeof D=='undefined'||typeof D[l]!='object'||Array.isArray(D[l])||D[l]==null||(A=Object.getOwnPropertyNames(D[l])),typeof A!='undefined'&&A!=null&&(A=A[0]||null),m.indexOf(D[l])>-1&&E)m.splice(m.indexOf(D[l]),1,D[l]);else if(typeof q[l]=='undefined'&&typeof D[l]=='object'&&D[l]!=null){if(q=m,typeof q[l]=='undefined'&&(q[l]={}),q[l]!==null&&typeof q[l]=='object')for(W in D[l])f(W)||
50
50
  q[l].hasOwnProperty(W)||(q[l][W]=D[l][W])}else{if(!E&&q.indexOf(D[l])>-1&&/number/i.test(typeof D[l])){for(n=r=Z=0;n<=l;++n)D[n]===D[l]&&++Z;for(n=0;n<q.length;++n)q[n]===D[l]&&++r;if(Z>r){q.push(D[l]);continue}}typeof m[l]=='undefined'||/null/i.test(m[l])||typeof m[l][aa]=='undefined'||typeof D[l]=='undefined'||D[l]==null||typeof D[l][aa]=='undefined'||m[l][aa]!=D[l][aa]?q.indexOf(D[l])!=-1||typeof D[l]=='object'&&D[l]!==null?typeof m[l]=='undefined'||/null/i.test(m[l])||typeof m[l][A]=='undefined'||
51
- typeof D[l]=='undefined'||D[l]==null||typeof D[l][A]=='undefined'||m[l][A]!=D[l][A]||(q[l]=E?D[l]:m[l]):q.push(D[l]):q[l]=E?D[l]:m[l]}}if(q.length>0&&m.length>0||q.length==0&&m.length==0)return q};N.prototype.setKeyComparison=function(D){this.keyComparison=D};var U=function(D){if(!D||{}.toString.call(D)!=='[object Object]'||D.nodeType||D.setInterval)return!1;var m={}.hasOwnProperty,E=m.call(D,'constructor'),A=!1;E||typeof D.constructor=='undefined'||(A=D.constructor.prototype?m.call(D.constructor.prototype,
52
- 'isPrototypeOf'):!1);return!D.constructor||E||A?!0:!1};H.setKeyComparison=function(D){N.keyComparison=D;return H};H.getKeyComparison=function(){var D=N.keyComparison||'id';N.keyComparison='id';return D};return H}typeof module!=='undefined'&&module.exports?(typeof JSON.clone=='undefined'&&(JSON.clone=require(__dirname+'/../../../../../utils/prototypes.json_clone')),module.exports=Merge()):typeof define==='function'&&define.amd&&define('lib/merge',[],function(){return Merge()});
53
- var _alphabet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',_mask=63,_step=7;function uuid(f){f=f||4;for(var q=f<=4?_step:Math.ceil(1.6*(_mask+1)*f/_alphabet.length),F='';;)for(var H=crypto.getRandomValues(new Uint8Array(q)),N=0;N<q;N++){var U=H[N]&_mask;if(U<62&&(F+=_alphabet[U],F.length===f))return F}}
54
- uuid.customAlphabet=function(f,q){q=q||4;for(var F=1;F<f.length-1;)F=F<<1|1;var H=Math.ceil(1.6*(F+1)*q/f.length);H<5&&(H=5);return function(N){N=N||q;for(var U='';;)for(var D=crypto.getRandomValues(new Uint8Array(H)),m=0;m<H;m++){var E=D[m]&F;if(E<f.length&&(U+=f[E],U.length===N))return U}}};
51
+ typeof D[l]=='undefined'||D[l]==null||typeof D[l][A]=='undefined'||m[l][A]!=D[l][A]||(q[l]=E?D[l]:m[l]):q.push(D[l]):q[l]=E?D[l]:m[l]}}if(q.length>0&&m.length>0||q.length==0&&m.length==0)return q};M.prototype.setKeyComparison=function(D){this.keyComparison=D};var V=function(D){if(!D||{}.toString.call(D)!=='[object Object]'||D.nodeType||D.setInterval)return!1;var m={}.hasOwnProperty,E=m.call(D,'constructor'),A=!1;E||typeof D.constructor=='undefined'||(A=D.constructor.prototype?m.call(D.constructor.prototype,
52
+ 'isPrototypeOf'):!1);return!D.constructor||E||A?!0:!1};H.setKeyComparison=function(D){M.keyComparison=D;return H};H.getKeyComparison=function(){var D=M.keyComparison||'id';M.keyComparison='id';return D};return H}typeof module!=='undefined'&&module.exports?(typeof JSON.clone=='undefined'&&(JSON.clone=require(__dirname+'/../../../../../utils/prototypes.json_clone')),module.exports=Merge()):typeof define==='function'&&define.amd&&define('lib/merge',[],function(){return Merge()});
53
+ var _alphabet='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',_mask=63,_step=7;function uuid(f){f=f||4;for(var q=f<=4?_step:Math.ceil(1.6*(_mask+1)*f/_alphabet.length),F='';;)for(var H=crypto.getRandomValues(new Uint8Array(q)),M=0;M<q;M++){var V=H[M]&_mask;if(V<62&&(F+=_alphabet[V],F.length===f))return F}}
54
+ uuid.customAlphabet=function(f,q){q=q||4;for(var F=1;F<f.length-1;)F=F<<1|1;var H=Math.ceil(1.6*(F+1)*q/f.length);H<5&&(H=5);return function(M){M=M||q;for(var V='';;)for(var D=crypto.getRandomValues(new Uint8Array(H)),m=0;m<H;m++){var E=D[m]&F;if(E<f.length&&(V+=f[E],V.length===M))return V}}};
55
55
  if(typeof module!=='undefined'&&module.exports){if(typeof crypto==='undefined'||typeof crypto.getRandomValues!=='function'){var _webcrypto=require('crypto').webcrypto||require('crypto');typeof globalThis!=='undefined'?globalThis.crypto=_webcrypto:crypto=_webcrypto}module.exports=uuid}else typeof define==='function'&&define.amd&&define('lib/uuid',[],function(){return uuid});function ownCount(f){return f===null||typeof f==='undefined'?f.count():Object.prototype.count.call(f)}
56
56
  function escapeForJsonString(f){return String(f).replace(/[\u0000-\u001f"\\]/g,function(q){switch(q){case '"':return'\\"';case '\\':return'\\\\';case '\b':return'\\b';case '\f':return'\\f';case '\n':return'\\n';case '\r':return'\\r';case '\t':return'\\t';default:return'\\u'+('000'+q.charCodeAt(0).toString(16)).slice(-4)}})}
57
- function decodeSplicedQuotes(f){return f.replace(/"(?:[^"\\]|\\.)*"/g,function(q){var F=null;try{F=JSON.parse(q)}catch(H){return q.replace(/\\"/g,'')}return JSON.stringify(F.replace(/"(?:[^"\\]|\\.)*"|"/g,function(H){if(H==='"')return'';try{return JSON.parse(H)}catch(N){return H.replace(/"/g,'')}}))})}function escapeRegExp(f){return String(f).replace(/[.*+?^${}()|[\]\\\/-]/g,'\\$&')}
58
- function substituteFieldTokens(f,q,F){for(var H=[],N=0,U=null;N<q.length;N++)U=String(q[N]),U!==''&&H.indexOf(U)<0&&H.push(U);if(!H.length)return f;H.sort(function(D,m){return m.length-D.length||(D<m?-1:D>m?1:0)});q=new RegExp('\\$('+H.map(escapeRegExp).join('|')+')(?![A-Za-z0-9_-])','g');return String(f).replace(q,function(D,m){return F(m,D)})}
59
- function FormValidatorUtil(f,q,F,H,N){function U(K,ha){var oa=gina.forms.compiledValidators=gina.forms.compiledValidators||{};if(typeof oa[K]!=='function'){var Ja=document,O=Ja.createElement('script'),S=Ja.querySelector('script[nonce]');S&&S.nonce&&(O.nonce=S.nonce);O.text='gina.forms.compiledValidators['+JSON.stringify(K)+'] = ('+ha+');\n//# sourceURL='+K+'.js';(Ja.head||Ja.documentElement).appendChild(O);O.parentNode.removeChild(O);if(typeof oa[K]!=='function')throw Error('the browser did not compile it \u2014 look for a SyntaxError or a Content-Security-Policy report in the console');
60
- }return oa[K]}var D=typeof module!=='undefined'&&module.exports?!1:!0,m=D?require('lib/merge'):require('../../../../../lib/merge');D||require('../../../../../helpers');D&&require('helpers/dateFormat');var E=D?require('lib/routing'):require('../../../../../lib/routing'),A=D?null:require('../../../../../lib/i18n'),aa=function(){if(typeof document==='undefined'||!document||typeof document.cookie!=='string')return null;var K=document.cookie||'';if(!K)return null;K=K.split(';');for(var ha=0,oa=K.length;ha<
61
- oa;++ha){for(var Ja=K[ha];Ja.charAt(0)===' '||Ja.charAt(0)==='\t';)Ja=Ja.slice(1);var O=Ja.indexOf('=');if(!(O<0)&&Ja.slice(0,O)==='gina-csrf-token'){K=Ja.slice(O+1);try{return decodeURIComponent(K)}catch(S){return K}}}return null},l=function(K){if(typeof K!=='string'||!K)return!1;K=K.toUpperCase();return K!=='GET'&&K!=='HEAD'&&K!=='OPTIONS'},W=function(){var K=!1,ha=null;D?D&&typeof gina.forms!='undefined'&&(ha=gina.forms):ha=getContext('gina').forms||null;ha&&typeof ha.validators!='undefined'&&
57
+ function decodeSplicedQuotes(f){return f.replace(/"(?:[^"\\]|\\.)*"/g,function(q){var F=null;try{F=JSON.parse(q)}catch(H){return q.replace(/\\"/g,'')}return JSON.stringify(F.replace(/"(?:[^"\\]|\\.)*"|"/g,function(H){if(H==='"')return'';try{return JSON.parse(H)}catch(M){return H.replace(/"/g,'')}}))})}function escapeRegExp(f){return String(f).replace(/[.*+?^${}()|[\]\\\/-]/g,'\\$&')}
58
+ function substituteFieldTokens(f,q,F){for(var H=[],M=0,V=null;M<q.length;M++)V=String(q[M]),V!==''&&H.indexOf(V)<0&&H.push(V);if(!H.length)return f;H.sort(function(D,m){return m.length-D.length||(D<m?-1:D>m?1:0)});q=new RegExp('\\$('+H.map(escapeRegExp).join('|')+')(?![A-Za-z0-9_-])','g');return String(f).replace(q,function(D,m){return F(m,D)})}
59
+ function FormValidatorUtil(f,q,F,H,M){function V(K,fa){var na=gina.forms.compiledValidators=gina.forms.compiledValidators||{};if(typeof na[K]!=='function'){var Ia=document,O=Ia.createElement('script'),T=Ia.querySelector('script[nonce]');T&&T.nonce&&(O.nonce=T.nonce);O.text='gina.forms.compiledValidators['+JSON.stringify(K)+'] = ('+fa+');\n//# sourceURL='+K+'.js';(Ia.head||Ia.documentElement).appendChild(O);O.parentNode.removeChild(O);if(typeof na[K]!=='function')throw Error('the browser did not compile it \u2014 look for a SyntaxError or a Content-Security-Policy report in the console');
60
+ }return na[K]}var D=typeof module!=='undefined'&&module.exports?!1:!0,m=D?require('lib/merge'):require('../../../../../lib/merge');D||require('../../../../../helpers');D&&require('helpers/dateFormat');var E=D?require('lib/routing'):require('../../../../../lib/routing'),A=D?null:require('../../../../../lib/i18n'),aa=function(){if(typeof document==='undefined'||!document||typeof document.cookie!=='string')return null;var K=document.cookie||'';if(!K)return null;K=K.split(';');for(var fa=0,na=K.length;fa<
61
+ na;++fa){for(var Ia=K[fa];Ia.charAt(0)===' '||Ia.charAt(0)==='\t';)Ia=Ia.slice(1);var O=Ia.indexOf('=');if(!(O<0)&&Ia.slice(0,O)==='gina-csrf-token'){K=Ia.slice(O+1);try{return decodeURIComponent(K)}catch(T){return K}}}return null},l=function(K){if(typeof K!=='string'||!K)return!1;K=K.toUpperCase();return K!=='GET'&&K!=='HEAD'&&K!=='OPTIONS'},W=function(){var K=!1,fa=null;D?D&&typeof gina.forms!='undefined'&&(fa=gina.forms):fa=getContext('gina').forms||null;fa&&typeof fa.validators!='undefined'&&
62
62
  (K=!0);return K},r={errors:{},keys:{'%l':'label','%n':'name','%s':'size'},errorLabels:{},data:{},excluded:[]},n={is:'Condition not satisfied',isEmail:'A valid email is required',isRequired:'Cannot be left empty',isBoolean:'Must be a valid boolean',isNumber:'Must be a number: allowed values are integers or floats',isNumberLength:'Must contain %s characters',isNumberMinLength:'Should be at least %s characters',isNumberMaxLength:'Should not be more than %s characters',isInteger:'Must be an integer',
63
63
  isIntegerLength:'Must have %s characters',isIntegerMinLength:'Should be at least %s characters',isIntegerMaxLength:'Should not be more than %s characters',toInteger:'Could not be converted to integer',isFloat:'Must be a proper float',isFloatException:'Float exception found: %n',toFloat:'Could not be converted to float',toFloatNAN:'Value must be a valid number',isDate:'Must be a valid Date',isString:'Must be a string',isStringLength:'Must have %s characters',isStringMinLength:'Should be at least %s characters',
64
64
  isStringMaxLength:'Should not be more than %s characters',isJsonWebToken:'Must be a valid JSON Web Token',isIban:'A valid IBAN is required',isBic:'A valid BIC is required',query:'Must be a valid response',isRequiredAutofill:'Filled in by your browser: click the field to confirm it',isInList:'Must be one of: %s'},Z={AD:24,AE:23,AL:28,AT:20,AZ:28,BA:20,BE:16,BG:22,BH:22,BI:27,BR:29,BY:28,CH:21,CR:22,CY:28,CZ:24,DE:22,DJ:27,DK:18,DO:28,EE:20,EG:29,ES:24,FI:18,FK:18,FO:18,FR:27,GB:22,GE:22,GI:23,GL:18,
65
- GR:27,GT:28,HR:21,HU:28,IE:22,IL:23,IQ:23,IS:26,IT:27,JO:30,KW:30,KZ:20,LB:28,LC:32,LI:21,LT:20,LU:20,LV:21,LY:25,MC:27,MD:24,ME:22,MK:19,MN:20,MR:27,MT:31,MU:30,NI:28,NL:18,NO:15,OM:23,PK:24,PL:28,PS:29,PT:25,QA:29,RO:24,RS:22,RU:33,SA:24,SC:31,SD:18,SE:24,SI:19,SK:24,SM:27,SO:23,ST:25,SV:28,TL:23,TN:24,TR:26,UA:29,VA:22,VG:24,XK:20},T={},Y=function(K){var ha={toFloatNAN:'toFloat',isNumberMinLength:'isNumberLength',isNumberMaxLength:'isNumberLength',isIntegerMinLength:'isIntegerLength',isIntegerMaxLength:'isIntegerLength',
66
- isStringMinLength:'isStringLength',isStringMaxLength:'isStringLength',isRequiredAutofill:'isRequired'},oa;for(oa in ha)typeof K[oa]=='undefined'&&typeof K[ha[oa]]!='undefined'&&(K[oa]=K[ha[oa]]);return K},v=function(K){D&&K&&K.target&&K.target.dataset&&typeof K.target.dataset.ginaFormAutofillWithheld!='undefined'&&delete K.target.dataset.ginaFormAutofillWithheld};r.errorLabels=n;if(!D&&A&&typeof N==='string'&&N){var L=getContext('bundle');if(L){N=A.walkFallback(N);for(var y=null,x=0;x<N.length;x++){var R=
67
- A.getCatalog(L,N[x]);if(R&&(R=A.resolveKey(R,'_validator'))&&typeof R==='object'){y=R;break}}y&&(y=Y(JSON.clone(y)),r.errorLabels=m(JSON.clone(y),n))}}if(D&&typeof gina!='undefined'&&typeof gina.config!='undefined'){L=(A=gina.config.culture)&&A.indexOf('_')>0?A.substr(0,A.indexOf('_')):A;A=typeof gina.validator!='undefined'&&gina.validator._errorLabelsByCulture&&A?gina.validator._errorLabelsByCulture[A]||(L?gina.validator._errorLabelsByCulture[L]:null)||null:null;L=null;if(gina.config.validatorLabels&&
68
- typeof gina.config.validatorLabels=='object')for(var X in gina.config.validatorLabels)if(gina.config.validatorLabels.hasOwnProperty(X)){L=gina.config.validatorLabels;break}L&&(L=Y(JSON.clone(L)),r.errorLabels=m(JSON.clone(L),r.errorLabels));A&&(A=Y(JSON.clone(A)),r.errorLabels=m(JSON.clone(A),r.errorLabels))}var g=null;if(f)g=m(JSON.clone(f),g),r.data=m(JSON.clone(f),r.data);else throw Error('missing data param');var V=function(K){var ha;var oa='';var Ja=K.length;for(ha=0;ha<Ja;){var O=K[ha++];switch(O>>
69
- 4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:oa+=String.fromCharCode(O);break;case 12:case 13:var S=K[ha++];oa+=String.fromCharCode((O&31)<<6|S&63);break;case 14:S=K[ha++];var ya=K[ha++];oa+=String.fromCharCode((O&15)<<12|(S&63)<<6|(ya&63)<<0)}}return oa};X=function(K,ha){var oa=g[this.name].errors||{},Ja=this.target.id||this.target.getAttribute('id');if(g.isValid()){var O=this.target.dataset.ginaFormValidatorTestedValue;console.debug('[ '+this.name+' ]','TESTED VALUE -> '+this.value+
70
- ' vs '+O);var S='asyncCompleted.'+Ja,ya=this.target.form.getAttribute('id'),ka=typeof gina.validator!='undefined'&&typeof gina.validator.$forms[ya]!='undefined'&&typeof gina.validator.$forms[ya].cachedErrors!='undefined'?gina.validator.$forms[ya].cachedErrors:null;if(!O||typeof O=='undefined'||O!==this.value)this.target.dataset.ginaFormValidatorTestedValue=this.value,ka&&typeof ka[this.name]!='undefined'&&typeof ka[this.name].query!='undefined'&&(delete ka[this.name].query,typeof gina.validator.$forms[ya]!=
71
- 'undefined'&&typeof gina.validator.$forms[ya].errors!='undefined'&&delete gina.validator.$forms[ya].errors.query);else if(O===this.value){if(this.target&&this.target.dataset&&this.target.dataset.ginaFormValidatorQueryPending===this.value)return g[this.name];var Ea=!1;ka&&typeof ka[this.name]!='undefined'&&typeof ka[this.name].query!='undefined'&&typeof ka[this.name].query[this.value]!='undefined'&&(this.error=ha=ka[this.name].query[this.value].slice(0),Ea=!0);oa.query=qa(this.error||ha||r.errorLabels.query,
72
- this,'query');console.debug('[2] potential cached error detected !! ',Ea,ka,' vs ',oa.query);Ea&&(this.errors=oa,this.valid=!1);if(typeof gina.events[S]!='undefined'){var Da=this.target,wa=this.name;queueMicrotask(function(){triggerEvent(gina,Da,S,g[wa])})}return g[this.name]}var Va=null,ba=this;if(window.XMLHttpRequest)Va=new XMLHttpRequest;else if(window.ActiveXObject)try{Va=new ActiveXObject('Msxml2.XMLHTTP')}catch(pb){try{Va=new ActiveXObject('Microsoft.XMLHTTP')}catch(gb){}}ha={isSynchrone:!1,
73
- headers:{}};oa=K.data||null;ka=null;var Ga=/^true$/i.test(this.target.form.dataset.ginaFormLiveCheckEnabled)?!0:!1;ka=JSON.stringify(oa);if(/\$/.test(ka)){oa=Object.keys(r.data);if(Ga)for(var La in H)H[La].name&&oa.push(H[La].name);var ab=this.target.form;ka=substituteFieldTokens(ka,oa,function(pb){var gb=r.data[pb]||null;if(!gb&&Ga){gb=null;for(let Ia in H)if(H[Ia].name===pb){gb=(new DOMParser).parseFromString(ab.innerHTML,'text/html').getElementById(H[Ia].id);break}if(!gb)throw Error('Field `'+
74
- pb+'` not found in fieldsSet');gb=gb.value}return'\\"'+escapeForJsonString(escapeForJsonString(gb))+'\\"'})}oa=decodeSplicedQuotes(ka);var ib=typeof K.validIf=='undefined'?!0:K.validIf;La=K&&K.headers?K.headers['Content-Type']:null;ha=m(ha,K,F);delete ha.data;delete ha.validIf;ka=ha.headers['Content-Type'];La&&La!=''||typeof oa!='string'||!/^[\[{]/.test(oa.trim())||(ka='application/json; charset=UTF-8');var Ya=null;Ja=this.target.getAttribute('id');if(!/^http/.test(ha.url)&&/@/.test(ha.url))try{Ea=
75
- E.getRoute(ha.url),ha.url=Ea.toUrl()}catch(pb){throw pb;}if(ha.withCredentials){if('withCredentials'in Va)ha.isSynchrone?Va.open(ha.method,ha.url,ha.isSynchrone):Va.open(ha.method,ha.url);else if(typeof XDomainRequest!='undefined')Va=new XDomainRequest,Va.open(ha.method,ha.url);else throw Va=null,Ya='CORS not supported: the server is missing the header `"Access-Control-Allow-Credentials": true` ',Error(Ya);Va.responseType=typeof ha.responseType!='undefined'?ha.responseType:'';Va.withCredentials=!0}else ha.isSynchrone?
76
- Va.open(ha.method,ha.url,ha.isSynchrone):Va.open(ha.method,ha.url);for(var qb in ha.headers)qb=='Content-Type'&&typeof ka!='undefined'&&ka!=null&&ka!=''||Va.setRequestHeader(qb,ha.headers[qb]);typeof ka!='undefined'&&ka!=null&&ka!=''&&Va.setRequestHeader('Content-Type',ka);l(ha.method)&&(Ea=aa())&&Va.setRequestHeader('X-Gina-CSRF-Token',Ea);var Cb=function(pb){console.warn('[ FormValidator ] `query` result handling failed for field `'+(ba&&ba.name)+'`: '+(pb&&pb.message||pb));try{ba.target&&ba.target.dataset&&
77
- ba.target.dataset.ginaFormValidatorQueryPending===String(ba.value)&&delete ba.target.dataset.ginaFormValidatorQueryPending}catch(Ia){}try{var gb=ba.target&&(ba.target.id||ba.target.getAttribute('id'));gb&&triggerEvent(gina,ba.target,'asyncCompleted.'+gb,g[ba.name])}catch(Ia){}},ob=function(pb){try{ba.target&&ba.target.dataset&&ba.target.dataset.ginaFormValidatorQueryPending===String(ba.value)&&delete ba.target.dataset.ginaFormValidatorQueryPending;ba.value=r.data[ba.name]=ba.value&&typeof ba.value==
78
- 'string'?ba.value.toLowerCase():ba.value;var gb=pb.isValid||!1;gb=ib!=gb?!1:!0;g[ba.name].valid=gb;var Ia=g[ba.name].errors||{},Gb=typeof pb.error!='undefined'&&typeof pb.fields!='undefined'?pb.fields:{};if(Gb.count()>0&&!gb||!gb){if(!gb){var Jb=null;if(typeof Gb[ba.name]!='undefined'){if(typeof Gb[ba.name]==='string'){var da=r.errorLabels;var xa=Gb[ba.name],ja=K.data;if(typeof xa=='string'){var C=xa.match(/\{\{([^{{}}]+)\}\}/g);if(C)for(let w=0,G=C.length;w<G;w++){let ia=C[w].replace(/\[/g,'["').replace(/\]/g,
79
- '"]').replace(/\{|\}/g,'').trim();try{var P=ia;let ca=[],ta=P.match(/^([A-Za-z_$][\w$]*)/);if(!ta)throw Error('Invalid property path: `'+ia+'`');ca.push(ta[1]);for(P=P.slice(ta[0].length);P.length>0;)if(ta=P.match(/^\.([A-Za-z_$][\w$]*)/))ca.push(ta[1]),P=P.slice(ta[0].length);else if(ta=P.match(/^\["([^"\]]*)"\]/))ca.push(ta[1]),P=P.slice(ta[0].length);else throw Error('Invalid property path: `'+ia+'`');P=ja;for(let B=0;P!=null&&B<ca.length;B++)P=P[ca[B]];ia=P.replace(/^"|"$/g,'');xa=xa.replace(new RegExp(C[w].replace(/\{|\[|\]|\}/g,
80
- '\\$&'),'g'),ia)}catch(ca){}}}var ma=xa;da.query=ma}}else typeof pb.error!='undefined'&&/^5/.test(pb.status)&&(Jb=pb.error);var Aa=typeof K.error!='undefined'?K.error:null;Ia.query=qa(Jb||ba.error||Aa||r.errorLabels.query,ba,'query');console.debug('[1] query error detected !! ',pb,Gb,Ia.query)}Ia.query||ba.value!=''||(gb=!0)}gb&&typeof Ia.query!='undefined'&&delete Ia.query;ba.valid=gb;var Ua=gina.validator.$forms[ba.target.form.getAttribute('id')].cachedErrors||{};if(Ia.count()>0){ba.errors=Ia;typeof g[ba.name].errors==
81
- 'undefined'&&(g[ba.name].errors={});g[ba.name].errors=m(g[ba.name].errors,Ia);typeof Ia.query!='undefined'&&Ia.query&&(typeof Ua[ba.name]=='undefined'&&(Ua[ba.name]={}),typeof Ua[ba.name].query=='undefined'&&(Ua[ba.name].query={}),Ua[ba.name].query[ba.value]=Ia.query.slice(0));var cb=ba.target.getAttribute('data-gina-form-errors');/query/.test(cb)||ba.target.setAttribute('data-gina-form-errors',cb&&cb!=''?cb+' query':'query')}else typeof Ua[ba.name]!='undefined'&&typeof Ua[ba.name].query!='undefined'&&
82
- typeof Ua[ba.name].query[ba.value]!='undefined'&&delete Ua[ba.name].query[ba.value];var k=ba.target.id||ba.target.getAttribute('id');console.debug('prematurely completed event `asyncCompleted.'+k+'`');return triggerEvent(gina,ba.target,'asyncCompleted.'+k,g[ba.name])}catch(w){return Cb(w)}};Va&&(Va.onerror=function(pb,gb){try{var Ia={status:Va.status,error:'Transaction error: might be due to the server CORS settings.\nPlease, check the console for more details.'};console.debug('query error [2] detected !! ',
83
- gb,'Transaction error: might be due to the server CORS settings.\nPlease, check the console for more details.');isOnException=!0;Ia=this.responseText;var Gb=this.getResponseHeader('Content-Type');if(/\/json/.test(Gb))Ia=JSON.parse(this.responseText),typeof Ia.status=='undefined'&&(Ia.status=this.status);else if(Ia={status:Va.status,message:''},/^(\{|\[)/.test(Va.responseText))try{Ia=m(Ia,JSON.parse(Va.responseText))}catch(Jb){Ia=m(Ia,Jb)}return ob(Ia)}catch(Jb){return Cb(Jb)}},Va.onload=function(){try{Ya=
84
- this.responseText;var pb=this.getResponseHeader('Content-Type');if(/\/json/.test(pb))Ya=JSON.parse(this.responseText),typeof Ya.status=='undefined'&&(Ya.status=this.status);else if(Ya={status:Va.status,message:''},/^(\{|\[)/.test(Va.responseText))try{Ya=m(Ya,JSON.parse(Va.responseText))}catch(gb){Ya=m(Ya,gb)}return ob(Ya)}catch(gb){return Cb(gb)}},ba.target&&ba.target.dataset&&(ba.target.dataset.ginaFormValidatorQueryPending=ba.value),f?Va.send(oa):Va.send())}else{console.debug('stopping on errors ...');
85
- var Kb=this.target,Mb=this.name;queueMicrotask(function(){triggerEvent(gina,Kb,'asyncCompleted.'+Ja,g[Mb])})}};A=async function(K,ha,oa,Ja){var O=(new (require(_(GINA_FRAMEWORK_DIR+'/core/config.js',!0)))).getInstance(),S=null,ya=null,ka=null,Ea=getContext('bundle');if(/@/.test(K.url)){var Da=K.url.split(/@/);ya=Da[0];ka=Da[1];try{O.bundle!==ka&&(S=JSON.clone(getConfig(Ea,'app').proxy[ka]))}catch(La){throw Error('Could not retrieve `proxy` configuration for bundle `'+ka+'`. Please check your `/config/app.json`.\n'+
86
- La.stack);}Da=null}else throw Error('external url/domain not handled at this moment, please contact us if you need support for it.');Da=JSON.clone(E.getRoute(K.url,K.data));var wa=O[ka][O.env],Va=wa.content.server;typeof Va._cached=='undefined'&&(Va._cached=new Map);typeof Va._cachedPath=='undefined'&&(Va._cachePath=Va.cache.path);typeof Va._cacheIsEnabled=='undefined'&&(Va._cacheIsEnabled=Va.cache.enable);S||(O.bundle==ka&&(S=getConfig(Ea,'settings').server.credentials,K.ca=S.ca||null,K.hostname=
87
- wa.server.scheme+'://'+wa.host,K.port=wa.port[wa.server.protocol][wa.server.scheme],K.protocol=wa.server.protocol,K.rejectUnauthorized=!1),S={ca:K.ca,hostname:K.hostname,port:K.port,path:K.path},typeof K.protocol!='undefined'&&(S.protocol=K.protocol),typeof K.rejectUnauthorized!='undefined'&&(S.rejectUnauthorized=K.rejectUnauthorized));ya={method:Da.method,requirements:Da.requirements,namespace:Da.namespace||void 0,url:decodeURI(Da.url),rule:ya+'@'+ka,param:JSON.clone(Da.param),middleware:JSON.clone(Da.middleware),
88
- bundle:Da.bundle,isXMLRequest:ha.isXMLRequest,isWithCredentials:ha.isWithCredentials};ka=ya.rule.replace('@'+ka,'')||'_common';ka={template:typeof wa.content.templates!='undefined'?wa.content.templates[ka]||wa.content.templates._common:void 0,isCacheless:wa.isCacheless};ka=m(ka,ya);wa=JSON.clone(wa);ka.conf=wa;ka.conf.content.routing[ka.rule].param=ya.param;ka.template&&typeof ka.template.ginaLoader=='undefined'&&(ka.template.ginaLoader=ka.conf.content.templates._common.ginaLoader);ka.conf.content.routing[ka.rule].param=
89
- ya.param;delete ka.middleware;delete ka.param;delete ka.requirements;wa=new (require(_(GINA_FRAMEWORK_DIR+'/core/controller/controller.js'),!0))(ka);wa.name=Da.param.control;wa.serverInstance=process.gina&&process.gina._serverInstance?process.gina._serverInstance:Va;wa.setOptions(ha,oa,Ja,ka);ha=typeof K.data=='object'&&ownCount(K.data)>0?K.data:{};if(/^get|delete|put$/i.test(K.method)){oa=0;for(let La in ha)typeof ha[La]=='object'&&encodeRFC5987ValueChars(JSON.stringify(ha[La])),oa++}S.method=K.method;
90
- S.path=Da.url;K=require('util').promisify;var ba={isValid:!1},Ga=!1;await K(wa.query)(S,ha).then(function(La){ba=La}).catch(function(La){Ga=La});Ga&&(console.error(Ga),ba.error=Ga);return ba};var fa=null;fa=D?X:A;var ua=function(K,ha){var oa=null,Ja=null;typeof g[K]=='undefined'&&typeof ha!='undefined'&&(g[K]=oa=ha);if(typeof g[K]=='object')try{oa=JSON.parse(JSON.stringify(g[K]))}catch(O){oa=g[K]}else oa=g[K];Ja='';D&&typeof q!='undefined'&&(Ja=q[K].getAttribute('data-gina-form-field-label')||'');
91
- g[K]={target:D&&typeof q!='undefined'?q[K]:null,name:K,value:oa,valid:!1,label:Ja,exclude:!1};g[K].is=function(O,S,ya){var ka=!1,Ea=typeof window!='undefined'?window:typeof global!='undefined'?global:null,Da=Ea&&typeof Ea._currentValidatorAlias!='undefined'?Ea._currentValidatorAlias:'is';Ea&&Ea._currentValidatorAlias&&delete Ea._currentValidatorAlias;Ea=g[this.name].errors||{};r.data[this.name]=g[this.name].value;this.value===''&&(ka=!0);if(!ka&&/^(true|false)$/i.test(O))ka=O;else if(!ka){var wa=
92
- null,Va=null;if(/[!=>><a-z 0-9]+/i.test(O)){var ba=[];for(La in g)g.hasOwnProperty(La)&&g[La]&&typeof g[La]=='object'&&'value'in g[La]&&ba.push(La);var Ga=function(Ya){Ya=g[Ya].value;return Ya==''?'""':typeof Ya=='string'?JSON.stringify(Ya):Ya};wa=/"(?:[^"\\]|\\.)*"|[^"]+/g;var La=O;/^\//.test(O)||(La=O.replace(wa,function(Ya){return Ya.charAt(0)==='"'?Ya:substituteFieldTokens(Ya,ba,Ga)}));try{if(/^\//.test(La)){var ab=La.match(/^\/(.+)\/([a-z]*)$/);if(!ab)throw Error('Invalid regex literal: `'+La+
93
- '`');ka=(new RegExp(ab[1],ab[2])).test(this.value)}else{La=La.replace(wa,function(Ya){return Ya.charAt(0)==='"'?Ya:Ya.replace(/(\(|\)|return)/g,'')});O=/^\s*(null|undefined|true|false|"(?:[^"\\]|\\.)*"|-?\d+(?:\.\d+)?)\s*(===|!==|<=|>=|==|!=|<|>)\s*(null|undefined|true|false|"(?:[^"\\]|\\.)*"|-?\d+(?:\.\d+)?)\s*$/;var ib=typeof La=='string'?La.match(O):null;if(ib){O=function(Ya){var qb=Ya.replace(/^\s+|\s+$/g,'');if(qb==='null')return null;if(qb!=='undefined'){if(qb==='true')return!0;if(qb==='false')return!1;
94
- if(/^"(?:[^"\\]|\\.)*"$/.test(qb))try{return JSON.parse(qb)}catch(ob){if(/^"[^"]*"$/.test(qb))return qb.slice(1,-1);throw ob;}var Cb=Number(qb);if(!isNaN(Cb)&&qb!=='')return Cb;throw Error('Invalid operand: `'+Ya+'`');}};Va=wa=ab=null;try{ab=O(ib[1]),wa=O(ib[3])}catch(Ya){Va=Ya}if(Va)console.warn('[FormValidator] Could not read an operand of `'+La+'` - treating field as invalid.\n('+Va.message+')'),ka=!1;else switch(ib[2]){case '===':ka=ab===wa;break;case '!==':ka=ab!==wa;break;case '==':ka=ab==wa;
95
- break;case '!=':ka=ab!=wa;break;case '<':ka=ab<wa;break;case '>':ka=ab>wa;break;case '<=':ka=ab<=wa;break;case '>=':ka=ab>=wa}}else console.warn('[FormValidator] Could not evaluate condition `'+La+'` - treating field as invalid.\n(grammar: <operand><op><operand>; operand \u2208 number | "string" | true | false | null | undefined; op \u2208 === !== == != < > <= >=)'),ka=!1}}catch(Ya){throw Error(Ya.stack||Ya.message);}}else if(O instanceof RegExp)ka=O.test(this.value)?!0:!1;else if(typeof O=='boolean')ka=
96
- O?!0:!1;else try{if(/\/(.*)\//.test(O))wa=O.match(/\/(.*)\//).pop(),Va=O.replace('/'+wa+'/',''),ka=(new RegExp(wa,Va)).test(this.value);else throw Error('[FormValidator] Unsupported condition shape \u2014 supported: binary comparison (a OP b), RegExp, boolean, /regex/flags literal. Got: `'+O+'`');}catch(Ya){throw Error(Ya.stack||Ya.message);}}ka?ka&&typeof Ea[Da]!='undefined'&&delete Ea[Da]:(Ea[Da]=qa(this.error||S||r.errorLabels[Da]||r.errorLabels.is,this,Da),typeof ya!='undefined'&&(Ea.stack=ya));
97
- this.valid=ka&&!Ea.isRequired;Ea.count()>0&&(this.errors=Ea);return g[this.name]};g[K].set=function(O){this.value=r.data[this.name]=O;D&&this.target&&this.target.setAttribute('value',O);return g[this.name]};g[K].isEmail=function(){this.value=r.data[this.name]=this.value&&typeof this.value=='string'?this.value.toLowerCase():this.value;D&&this.target&&this.target.value!=''&&/[A-Z]+/.test(this.target.value)&&(this.target.value=this.value);var O=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(this.value)?
98
- !0:!1,S=g[this.name].errors||{};this.value===''&&(O=!0);O?O&&typeof S.isEmail!='undefined'&&delete S.isEmail:S.isEmail=qa(this.error||r.errorLabels.isEmail,this,'isEmail');this.valid=O&&!S.isRequired;S.count()>0&&(this.errors=S);return g[this.name]};g[K].isJsonWebToken=function(){this.value=r.data[this.name]=this.value&&typeof this.value=='string'?this.value.toLowerCase():this.value;D&&this.target&&this.target.value!=''&&/[A-Z]+/.test(this.target.value)&&(this.target.value=this.value);var O=/^[A-Za-z0-9-_=]+\.[A-Za-z0-9-_=]+\.?[A-Za-z0-9-_.+/=]*$/.test(this.value)?
99
- !0:!1,S=g[this.name].errors||{};this.value===''&&(O=!0);O?O&&typeof S.isJsonWebToken!='undefined'&&delete S.isJsonWebToken:S.isJsonWebToken=qa(this.error||r.errorLabels.isJsonWebToken,this,'isJsonWebToken');this.valid=O&&!S.isRequired;S.count()>0&&(this.errors=S);return g[this.name]};g[K].isIban=function(){var O=this.value&&typeof this.value=='string'?this.value.toUpperCase().replace(/[\s-]+/g,''):this.value,S=/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/;if(S=typeof O=='string'&&S.test(O)?!0:!1){var ya=O.slice(0,
100
- 2);typeof Z[ya]!='undefined'&&O.length!==Z[ya]&&(S=!1)}if(S){S=O.slice(4)+O.slice(0,4);O='';ya=0;for(var ka=S.length;ya<ka;++ya){var Ea=S.charCodeAt(ya);O+=Ea>=65?(Ea-55).toString():S.charAt(ya)}ya=S=0;for(ka=O.length;ya<ka;ya+=7)S=parseInt(S.toString()+O.slice(ya,ya+7),10)%97;S=S===1}O=g[this.name].errors||{};this.value===''&&(S=!0);r.data[this.name]=this.value;S?S&&typeof O.isIban!='undefined'&&delete O.isIban:O.isIban=qa(this.error||r.errorLabels.isIban,this,'isIban');this.valid=S&&!O.isRequired;
101
- O.count()>0&&(this.errors=O);return g[this.name]};g[K].isBic=function(){var O=/^[A-Za-z]{4}[A-Za-z]{2}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/.test(this.value)?!0:!1,S=g[this.name].errors||{};this.value===''&&(O=!0);r.data[this.name]=this.value;O?O&&typeof S.isBic!='undefined'&&delete S.isBic:S.isBic=qa(this.error||r.errorLabels.isBic,this,'isBic');this.valid=O&&!S.isRequired;S.count()>0&&(this.errors=S);return g[this.name]};g[K].isBoolean=function(){var O=null,S=g[this.name].errors||{};if(this.value===
102
- '')var ya=!0;else{switch(this.value){case 'true':case !0:case 1:O=this.value=r.data[this.name]=!0;break;case 'false':case !1:case 0:O=this.value=r.data[this.name]=!1}ya=O!==null?!0:!1;O!==null&&S.isRequired&&delete S.isRequired}ya?ya&&typeof S.isBoolean!='undefined'&&delete S.isBoolean:S.isBoolean=qa(this.error||r.errorLabels.isBoolean,this,'isBoolean');this.valid=ya&&!S.isRequired;S.count()>0&&(this.errors=S);return g[this.name]};g[K].isNumber=function(O,S){var ya=this.value,ka=!1,Ea=!0,Da=!0,wa=
103
- g[this.name].errors||{};try{typeof ya=='string'&&/,|\./g.test(ya)?ya=r.data[this.name]=this.value=parseFloat(ya.replace(/,/g,'.').replace(/\s+/g,'')):typeof ya=='string'&&ya!=''&&(ya=r.data[this.name]=this.value=parseInt(ya.replace(/\s+/g,'')))}catch(ba){wa.isNumber=qa(this.error||r.errorLabels.isNumber,this,'isNumber'),this.valid=!1,wa.count()>0&&(this.errors=wa)}if(+ya===+ya&&(ka=!0,!wa.isRequired&&ya!=='')){var Va=ya.toString().length;O&&typeof O=='number'&&Va<O&&(Ea=!1,this.size=O);S&&typeof S==
104
- 'number'&&Va>S&&(Da=!1,this.size=S)}ka&&Ea&&Da||(ka||(wa.isNumber=qa(this.error||r.errorLabels.isNumber,this,'isNumber')),Ea&&Da||(Ea||(wa.isNumberLength=qa(this.error||r.errorLabels.isNumberMinLength,this,'isNumberMinLength')),Da||(wa.isNumberLength=qa(this.error||r.errorLabels.isNumberMaxLength,this,'isNumberMaxLength')),O===S&&(wa.isNumberLength=qa(this.error||r.errorLabels.isNumberLength,this,'isNumberLength'))),ka=!1);ka&&typeof wa.isNumberLength!='undefined'&&delete wa.isNumberLength;this.valid=
105
- ka;this.value=r.data[this.name]=ya!=''?Number(ya):ya;wa.count()>0&&(this.errors=wa);return g[this.name]};g[K].toInteger=function(){var O=this.value,S=g[this.name].errors||{};if(O)try{this.value=r.data[this.name]=Math.round(O)}catch(ya){S.toInteger=qa(this.error||r.errorLabels.toInteger,this,'toInteger'),this.valid=!1,S.count()>0&&(this.errors=S)}return g[this.name]};g[K].isInteger=function(O,S){var ya=this.value,ka=!1,Ea=!0,Da=!0,wa=g[this.name].errors||{};+ya===+ya&&ya%1===0&&(ka=!0,wa.isRequired||
106
- ya===''||(O&&typeof O=='number'&&ya.toString().length<O&&(Ea=!1,this.size=O),S&&typeof S=='number'&&ya.toString().length>S&&(Da=!1,this.size=S)));ka&&Ea&&Da||(ka||(wa.isInteger=qa(this.error||r.errorLabels.isInteger,this,'isInteger')),Ea&&Da||(Ea||(wa.isIntegerLength=qa(this.error||r.errorLabels.isIntegerMinLength,this,'isIntegerMinLength'),ka=!1),Da||(wa.isIntegerLength=qa(this.error||r.errorLabels.isIntegerMaxLength,this,'isIntegerMaxLength'),ka=!1),O===S&&(wa.isIntegerLength=qa(this.error||r.errorLabels.isIntegerLength,
107
- this,'isIntegerLength'),ka=!1)));this.valid=ka;this.value=r.data[this.name]=Number(ya);wa.count()>0&&(this.errors=wa);return g[this.name]};g[K].toFloat=function(O){var S=null,ya=!1;this.target&&typeof document!=='undefined'&&document&&typeof document.getElementById==='function'&&(S=document.getElementById(this.target.getAttribute('id')));S=S&&typeof S.value!='undefined'?S.value||this.value:this.value;typeof S=='string'&&(S=S.replace(/\s+/g,''),/,/.test(S)&&/\./.test(S)?S=S.replace(/,/g,''):/,/.test(S)&&
108
- (S=S.replace(/,/g,'.'),ya=!0));r.data[this.name]=S;var ka=g[this.name].errors||{},Ea=!0;O?this.decimals=parseInt(O):typeof this.decimals=='undefined'&&(this.decimals=2);if(S)if(this.isNumber().valid)try{Number.isFinite(S)||(S=new Number(parseFloat(S.match(/[0-9.,]+/g).join('').replace(/,/,'.'))))}catch(Da){Ea=!1,ka.toFloat=qa(this.error||r.errorLabels.toFloat,this,'toFloat'),this.valid=!1,ka.count()>0&&(this.errors=ka)}else Ea=!1,ka.toFloat=qa(this.error||r.errorLabels.toFloatNAN,this,'toFloatNAN');
109
- else return g[this.name];this.decimals&&S&&!ka.toFloat&&(S=parseFloat(S.toFixed(this.decimals)));this.value=r.data[this.name]=S;D&&(ya&&(S=(''+S).replace(/\./g,',')),this.target.setAttribute('value',S));this.valid=Ea;ka.count()>0&&(this.errors=ka);return g[this.name]};g[K].isFloat=function(O){typeof this.value=='string'&&(this.value=this.value.replace(/\s+/g,''));var S=r.data[this.name]=this.value;O=g[this.name].errors||{};typeof S=='string'&&/\./.test(S)&&Number.isFinite(Number(S));typeof S=='string'&&
110
- /,/g.test(S)&&(S=this.value=r.data[this.name]=Number(S.replace(/,/g,'.')));S=Number(S);Number.isFinite(S)&&S%1!==0?(this.value=r.data[this.name]=S,S=!0):S=!1;this.value===''&&(S=!0);S||(O.isFloat=qa(this.error||r.errorLabels.isFloat,this,'isFloat'));this.valid=S&&!O.isRequired;O.count()>0&&(this.errors=O);return g[this.name]};g[K].isRequired=function(O){if(typeof O=='boolean'&&!O)return this.valid=!0,O=r.excluded.indexOf(this.name),O>-1&&r.excluded.splice(O,1),g[this.name];if(D&&this.target&&this.target.tagName==
111
- 'INPUT'&&typeof this.target.type!='undefined'&&this.target.type=='radio'){var S=this.target;O=document.getElementsByName(this.name);O=Array.prototype.filter.call(O,function(Ea){return Ea.form===S.form});for(var ya=0,ka=O.length;ya<ka;++ya)if(O[ya].checked){/true|false/.test(O[ya].value)?this.value=r.data[this.name]=/true/.test(O[ya].value)?!0:!1:this.value=r.data[this.name]=O[ya].value;this.valid=!0;break}}O=typeof this.value=='undefined'||this.value==null||this.value==''||/^\s+$/.test(this.value)?
112
- !1:!0;ya=g[this.name].errors||{};O?O&&(v(this),typeof ya.isRequired!='undefined'&&delete ya.isRequired):(ka=D&&this&&this.target&&typeof gina!='undefined'&&typeof gina.validator!='undefined'&&typeof gina.validator.isAutofillValueWithheld=='function'?gina.validator.isAutofillValueWithheld(this.target):!1,ka?(ya.isRequired=qa(this.error||r.errorLabels.isRequiredAutofill,this,'isRequiredAutofill'),this.target.dataset&&(this.target.dataset.ginaFormAutofillWithheld='true')):(ya.isRequired=qa(this.error||
113
- r.errorLabels.isRequired,this,'isRequired'),v(this)));this.valid=O;ya.count()>0&&(this.errors=ya);return g[this.name]};g[K].isString=function(O,S){var ya=r.data[this.name]=this.value,ka=!1,Ea=!0,Da=!0,wa=g[this.name].errors||{};typeof ya!='string'||wa.isRequired||ya==''||(ka=!0,O&&typeof O=='number'&&ya.length<O&&(Ea=!1,this.size=O),S&&typeof S=='number'&&ya.length>S&&(Da=!1,this.size=S));ka&&Ea&&Da||(!ka&&wa.isRequired&&ya==''?ka=!1:ka||wa.isRequired||(ka=!0),Ea&&Da||(ka=!1,Ea||(wa.isStringLength=
114
- qa(this.error||r.errorLabels.isStringMinLength,this,'isStringMinLength')),Da||(wa.isStringLength=qa(this.error||r.errorLabels.isStringMaxLength,this,'isStringMaxLength')),O===S&&(wa.isStringLength=qa(this.error||r.errorLabels.isStringLength,this,'isStringLength'))));this.valid=ka;wa.count()>0&&(this.errors=wa);return g[this.name]};g[K].isDate=function(O){var S=this.value,ya=!1,ka=g[this.name].errors||{},Ea=null;if(!S||S==''||/NaN|Invalid Date/i.test(S))return/NaN|Invalid Date/i.test(S)&&(console.warn('[FormValidator::isDate] Provided value for field `'+
115
- this.name+'` is not allowed: `'+S+'`'),ka.isDate=qa(this.error||r.errorLabels.isDate,this,'isDate')),this.valid=ya,ka.count()>0&&(this.errors=ka),g[this.name];if(typeof O=='undefined'||typeof O!='undefined'&&/true/i.test(O))O='yyyy-mm-dd';if(S instanceof Date)S.format(O);else{try{Ea=O.match(/[^\/\- ]+/g)}catch(ib){throw Error('[FormValidator::isDate] Provided mask not allowed: `'+O+'`');}var Da={},wa,Va=null,ba=O=NaN,Ga=NaN;try{Va=S.match(/[^\/\- ]+/g);var La=0;for(wa=Ea.length;La<wa;++La)Da[Ea[La]]=
116
- Va[La]}catch(ib){throw Error('[FormValidator::isDate] Provided value not allowed: `'+S+'`'+ib);}for(var ab in Da)/y/i.test(ab)?O=parseInt(Da[ab],10):/m/i.test(ab)?ba=parseInt(Da[ab],10):/d/i.test(ab)&&(Ga=parseInt(Da[ab],10));if(!Number.isFinite(O)||!Number.isFinite(ba)||!Number.isFinite(Ga)||ba<1||ba>12||Ga<1||Ga>31)S=this.value=r.data[this.name]=new Date(NaN);else{S=new Date(O,ba-1,Ga);if(S.getFullYear()!==O||S.getMonth()!==ba-1||S.getDate()!==Ga)S=new Date(NaN);this.value=S;isNaN(S.getTime())?
117
- r.data[this.name]=S:r.data[this.name]=S.getFullYear()+'-'+('0'+(S.getMonth()+1)).slice(-2)+'-'+('0'+S.getDate()).slice(-2)}if(/Invalid Date/i.test(S)||S instanceof Date===!1)return ka.isRequired||this.value!=''?ka.isDate=qa(this.error||r.errorLabels.isDate,this,'isDate'):ya=!0,this.valid=ya,ka.count()>0&&(this.errors=ka),g[this.name];ya=!0}this.valid=ya;return g[this.name]};g[K].isInList=function(){for(var O=g[this.name].errors||{},S=[],ya=0,ka=arguments.length;ya<ka;++ya){var Ea=typeof arguments[ya];
118
- if(Ea!=='string'&&Ea!=='number'&&Ea!=='boolean')throw Error('`isInList` requires an array of allowed primitive values; got '+Ea+' at position '+ya+'. Use `isInList: ["a", "b", "c"]` form.');S.push(arguments[ya])}ya=r.data[this.name]=this.value;ka=!1;ya===''||ya==null?ka=!0:S.indexOf(ya)>-1&&(ka=!0);ka?typeof O.isInList!='undefined'&&delete O.isInList:(this.size=S.join(', '),O.isInList=qa(this.error||r.errorLabels.isInList,this,'isInList'));this.valid=ka&&!O.isRequired;O.count()>0&&(this.errors=O);
119
- return g[this.name]};g[K].format=function(O,S){var ya=this.value;if(!ya)return g[this.name];if(typeof ya.format!=='function')throw Error('[FormValidator::format] field `'+this.name+'`: value is not a Date - apply isDate(mask) before format(mask)');return ya.format(O,S)};g[K].setFlash=function(O,S){typeof S!='undefined'&&S!=''&&(this.error=S);return g[this.name]};g[K].setLabel=function(O){typeof O!='undefined'&&O!=''&&(this.label=O);return g[this.name]};g[K].trim=function(O){if(typeof O=='boolean'&&
120
- O)return typeof this.value=='string'&&(this.value=this.value.replace(/^\s+|\s+$/g,''),r.data[this.name]=r.data[this.name]=this.value),g[this.name]};g[K].exclude=function(O){if(typeof O=='boolean'&&!O)return/^true|false$/i.test(this.value)&&(this.value=/^true$/i.test(this.value)?!0:!1,r.data[this.name]=this.value),g[this.name];this.isExcluded=!1;r.excluded.indexOf(this.name)<0&&(r.excluded.push(this.name),this.isExcluded=!0);return g[this.name]};g[K].query=fa;g[K].getValidationContext=function(){return{isGFFCtx:D,
121
- self:g,local:r,replace:qa}};if(W()){oa=ha=null;try{for(let O in gina.forms.validators)if(oa='/validators/'+O+'/main.js',typeof r.errorLabels[O]=='undefined'&&(r.errorLabels[O]='Condition not satisfied'),D)ha=V(gina.forms.validators[O].data),ha=ha.replace(/(\)\s+\{|\)\{){1}/,'$&\n\tvar validationContext = this.getValidationContext(),isGFFCtx = validationContext.isGFFCtx,self = validationContext.self,local = validationContext.local,replace = validationContext.replace;'),g[K][O]=U(O,ha);else if(typeof gina.forms.validators[O]===
122
- 'function')g[K][O]=gina.forms.validators[O];else throw Error('[UserFormValidator] custom validators run in the browser only \u2014 the server-side registration path is not wired (see the validation-rules reference, "Custom validators")');}catch(O){throw Error('[UserFormValidator] Could not evaluate: `'+oa+'`\n'+O.stack);}}};for(let K in g)ua(K,g[K]);g.addField=function(K,ha){typeof g[K]=='undefined'&&ua(K,ha)};g.isValid=function(){return g.getErrors().count()>0?!1:!0};g.setErrors=function(K){if(!K)return{};
123
- for(var ha in g)if(typeof g[ha]=='object'){for(var oa in g[ha])typeof K[ha]=='object'&&typeof K[ha][oa]!='undefined'&&(typeof g[ha].valid!='undefined'&&/^true$/i.test(g[ha].valid)?delete K[ha][oa]:(typeof g[ha].errors=='undefined'&&(g[ha].errors={}),g[ha].errors[oa]=K[ha][oa]));(typeof g[ha].errors=='undefined'&&typeof K[ha]!='undefined'||typeof g[ha].errors!='undefined'&&g[ha].errors.count()==0&&typeof K[ha]!='undefined')&&delete K[ha]}return K};g.getErrors=function(K){var ha={};if(typeof K!='undefined')return typeof g[K]!=
124
- 'undefined'&&g[K]&&typeof g[K].errors!='undefined'&&g[K].errors.count()>0&&(ha[K]=g[K].errors),ha;for(var oa in g)typeof g[oa]=='object'&&typeof g[oa].errors!='undefined'&&g[oa].errors.count()>0&&(ha[oa]=g[oa].errors);return ha};g.toData=function(){if(r.excluded.length>0)for(var K=0,ha=r.excluded.length;K<ha;++K)typeof r.data[r.excluded[K]]!='undefined'&&delete r.data[r.excluded[K]];return r.data};var qa=function(K,ha,oa){if(typeof K!=='string'){var Ja=oa&&typeof r.errorLabels[oa]==='string'?r.errorLabels[oa]:
125
- oa&&typeof n[oa]==='string'?n[oa]:'';oa=oa||'(unknown rule)';T[oa]||(T[oa]=!0,console.warn('[FormValidator] error label for rule `'+oa+'` must be a string \u2014 got '+(K===null?'null':typeof K)+'. Falling back to '+(Ja?'`'+Ja+'`':'an empty message')+". Check the bundle catalog's `_validator` node, `setErrorLabels()`, the rule's `errorMessage` argument, and the field's `error`."));K=Ja}if(Ja=K.match(/%[a-z]+/gi)){oa=0;for(var O=Ja.length;oa<O;++oa)K=K.replace(new RegExp(Ja[oa],'g'),ha[r.keys[Ja[oa]]])}return K};
65
+ GR:27,GT:28,HR:21,HU:28,IE:22,IL:23,IQ:23,IS:26,IT:27,JO:30,KW:30,KZ:20,LB:28,LC:32,LI:21,LT:20,LU:20,LV:21,LY:25,MC:27,MD:24,ME:22,MK:19,MN:20,MR:27,MT:31,MU:30,NI:28,NL:18,NO:15,OM:23,PK:24,PL:28,PS:29,PT:25,QA:29,RO:24,RS:22,RU:33,SA:24,SC:31,SD:18,SE:24,SI:19,SK:24,SM:27,SO:23,ST:25,SV:28,TL:23,TN:24,TR:26,UA:29,VA:22,VG:24,XK:20},U={},Y=function(K){var fa={toFloatNAN:'toFloat',isNumberMinLength:'isNumberLength',isNumberMaxLength:'isNumberLength',isIntegerMinLength:'isIntegerLength',isIntegerMaxLength:'isIntegerLength',
66
+ isStringMinLength:'isStringLength',isStringMaxLength:'isStringLength',isRequiredAutofill:'isRequired'},na;for(na in fa)typeof K[na]=='undefined'&&typeof K[fa[na]]!='undefined'&&(K[na]=K[fa[na]]);return K},v=function(K){D&&K&&K.target&&K.target.dataset&&typeof K.target.dataset.ginaFormAutofillWithheld!='undefined'&&delete K.target.dataset.ginaFormAutofillWithheld};r.errorLabels=n;if(!D&&A&&typeof M==='string'&&M){var L=getContext('bundle');if(L){M=A.walkFallback(M);for(var y=null,x=0;x<M.length;x++){var S=
67
+ A.getCatalog(L,M[x]);if(S&&(S=A.resolveKey(S,'_validator'))&&typeof S==='object'){y=S;break}}y&&(y=Y(JSON.clone(y)),r.errorLabels=m(JSON.clone(y),n))}}if(D&&typeof gina!='undefined'&&typeof gina.config!='undefined'){L=(A=gina.config.culture)&&A.indexOf('_')>0?A.substr(0,A.indexOf('_')):A;A=typeof gina.validator!='undefined'&&gina.validator._errorLabelsByCulture&&A?gina.validator._errorLabelsByCulture[A]||(L?gina.validator._errorLabelsByCulture[L]:null)||null:null;L=null;if(gina.config.validatorLabels&&
68
+ typeof gina.config.validatorLabels=='object')for(var X in gina.config.validatorLabels)if(gina.config.validatorLabels.hasOwnProperty(X)){L=gina.config.validatorLabels;break}L&&(L=Y(JSON.clone(L)),r.errorLabels=m(JSON.clone(L),r.errorLabels));A&&(A=Y(JSON.clone(A)),r.errorLabels=m(JSON.clone(A),r.errorLabels))}var g=null;if(f)g=m(JSON.clone(f),g),r.data=m(JSON.clone(f),r.data);else throw Error('missing data param');var Q=function(K){var fa;var na='';var Ia=K.length;for(fa=0;fa<Ia;){var O=K[fa++];switch(O>>
69
+ 4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:na+=String.fromCharCode(O);break;case 12:case 13:var T=K[fa++];na+=String.fromCharCode((O&31)<<6|T&63);break;case 14:T=K[fa++];var ya=K[fa++];na+=String.fromCharCode((O&15)<<12|(T&63)<<6|(ya&63)<<0)}}return na};X=function(K,fa){var na=g[this.name].errors||{},Ia=this.target.id||this.target.getAttribute('id');if(g.isValid()){var O=this.target.dataset.ginaFormValidatorTestedValue;console.debug('[ '+this.name+' ]','TESTED VALUE -> '+this.value+
70
+ ' vs '+O);var T='asyncCompleted.'+Ia,ya=this.target.form.getAttribute('id'),ja=typeof gina.validator!='undefined'&&typeof gina.validator.$forms[ya]!='undefined'&&typeof gina.validator.$forms[ya].cachedErrors!='undefined'?gina.validator.$forms[ya].cachedErrors:null;if(!O||typeof O=='undefined'||O!==this.value)this.target.dataset.ginaFormValidatorTestedValue=this.value,ja&&typeof ja[this.name]!='undefined'&&typeof ja[this.name].query!='undefined'&&(delete ja[this.name].query,typeof gina.validator.$forms[ya]!=
71
+ 'undefined'&&typeof gina.validator.$forms[ya].errors!='undefined'&&delete gina.validator.$forms[ya].errors.query);else if(O===this.value){if(this.target&&this.target.dataset&&this.target.dataset.ginaFormValidatorQueryPending===this.value)return g[this.name];var Ea=!1;ja&&typeof ja[this.name]!='undefined'&&typeof ja[this.name].query!='undefined'&&typeof ja[this.name].query[this.value]!='undefined'&&(this.error=fa=ja[this.name].query[this.value].slice(0),Ea=!0);na.query=pa(this.error||fa||r.errorLabels.query,
72
+ this,'query');console.debug('[2] potential cached error detected !! ',Ea,ja,' vs ',na.query);Ea&&(this.errors=na,this.valid=!1);if(typeof gina.events[T]!='undefined'){var Da=this.target,wa=this.name;queueMicrotask(function(){triggerEvent(gina,Da,T,g[wa])})}return g[this.name]}var Va=null,ba=this;if(window.XMLHttpRequest)Va=new XMLHttpRequest;else if(window.ActiveXObject)try{Va=new ActiveXObject('Msxml2.XMLHTTP')}catch(rb){try{Va=new ActiveXObject('Microsoft.XMLHTTP')}catch(gb){}}fa={isSynchrone:!1,
73
+ headers:{}};na=K.data||null;ja=null;var Ga=/^true$/i.test(this.target.form.dataset.ginaFormLiveCheckEnabled)?!0:!1;ja=JSON.stringify(na);if(/\$/.test(ja)){na=Object.keys(r.data);if(Ga)for(var Ka in H)H[Ka].name&&na.push(H[Ka].name);var $a=this.target.form;ja=substituteFieldTokens(ja,na,function(rb){var gb=r.data[rb]||null;if(!gb&&Ga){gb=null;for(let Ha in H)if(H[Ha].name===rb){gb=(new DOMParser).parseFromString($a.innerHTML,'text/html').getElementById(H[Ha].id);break}if(!gb)throw Error('Field `'+
74
+ rb+'` not found in fieldsSet');gb=gb.value}return'\\"'+escapeForJsonString(escapeForJsonString(gb))+'\\"'})}na=decodeSplicedQuotes(ja);var ib=typeof K.validIf=='undefined'?!0:K.validIf;Ka=K&&K.headers?K.headers['Content-Type']:null;fa=m(fa,K,F);delete fa.data;delete fa.validIf;ja=fa.headers['Content-Type'];Ka&&Ka!=''||typeof na!='string'||!/^[\[{]/.test(na.trim())||(ja='application/json; charset=UTF-8');var Ya=null;Ia=this.target.getAttribute('id');if(!/^http/.test(fa.url)&&/@/.test(fa.url))try{Ea=
75
+ E.getRoute(fa.url),fa.url=Ea.toUrl()}catch(rb){throw rb;}if(fa.withCredentials){if('withCredentials'in Va)fa.isSynchrone?Va.open(fa.method,fa.url,fa.isSynchrone):Va.open(fa.method,fa.url);else if(typeof XDomainRequest!='undefined')Va=new XDomainRequest,Va.open(fa.method,fa.url);else throw Va=null,Ya='CORS not supported: the server is missing the header `"Access-Control-Allow-Credentials": true` ',Error(Ya);Va.responseType=typeof fa.responseType!='undefined'?fa.responseType:'';Va.withCredentials=!0}else fa.isSynchrone?
76
+ Va.open(fa.method,fa.url,fa.isSynchrone):Va.open(fa.method,fa.url);for(var sb in fa.headers)sb=='Content-Type'&&typeof ja!='undefined'&&ja!=null&&ja!=''||Va.setRequestHeader(sb,fa.headers[sb]);typeof ja!='undefined'&&ja!=null&&ja!=''&&Va.setRequestHeader('Content-Type',ja);l(fa.method)&&(Ea=aa())&&Va.setRequestHeader('X-Gina-CSRF-Token',Ea);var Cb=function(rb){console.warn('[ FormValidator ] `query` result handling failed for field `'+(ba&&ba.name)+'`: '+(rb&&rb.message||rb));try{ba.target&&ba.target.dataset&&
77
+ ba.target.dataset.ginaFormValidatorQueryPending===String(ba.value)&&delete ba.target.dataset.ginaFormValidatorQueryPending}catch(Ha){}try{var gb=ba.target&&(ba.target.id||ba.target.getAttribute('id'));gb&&triggerEvent(gina,ba.target,'asyncCompleted.'+gb,g[ba.name])}catch(Ha){}},qb=function(rb){try{ba.target&&ba.target.dataset&&ba.target.dataset.ginaFormValidatorQueryPending===String(ba.value)&&delete ba.target.dataset.ginaFormValidatorQueryPending;ba.value=r.data[ba.name]=ba.value&&typeof ba.value==
78
+ 'string'?ba.value.toLowerCase():ba.value;var gb=rb.isValid||!1;gb=ib!=gb?!1:!0;g[ba.name].valid=gb;var Ha=g[ba.name].errors||{},Fb=typeof rb.error!='undefined'&&typeof rb.fields!='undefined'?rb.fields:{};if(Fb.count()>0&&!gb||!gb){if(!gb){var Ib=null;if(typeof Fb[ba.name]!='undefined'){if(typeof Fb[ba.name]==='string'){var da=r.errorLabels;var xa=Fb[ba.name],ia=K.data;if(typeof xa=='string'){var C=xa.match(/\{\{([^{{}}]+)\}\}/g);if(C)for(let w=0,G=C.length;w<G;w++){let ha=C[w].replace(/\[/g,'["').replace(/\]/g,
79
+ '"]').replace(/\{|\}/g,'').trim();try{var P=ha;let ca=[],ta=P.match(/^([A-Za-z_$][\w$]*)/);if(!ta)throw Error('Invalid property path: `'+ha+'`');ca.push(ta[1]);for(P=P.slice(ta[0].length);P.length>0;)if(ta=P.match(/^\.([A-Za-z_$][\w$]*)/))ca.push(ta[1]),P=P.slice(ta[0].length);else if(ta=P.match(/^\["([^"\]]*)"\]/))ca.push(ta[1]),P=P.slice(ta[0].length);else throw Error('Invalid property path: `'+ha+'`');P=ia;for(let B=0;P!=null&&B<ca.length;B++)P=P[ca[B]];ha=P.replace(/^"|"$/g,'');xa=xa.replace(new RegExp(C[w].replace(/\{|\[|\]|\}/g,
80
+ '\\$&'),'g'),ha)}catch(ca){}}}var ma=xa;da.query=ma}}else typeof rb.error!='undefined'&&/^5/.test(rb.status)&&(Ib=rb.error);var Ba=typeof K.error!='undefined'?K.error:null;Ha.query=pa(Ib||ba.error||Ba||r.errorLabels.query,ba,'query');console.debug('[1] query error detected !! ',rb,Fb,Ha.query)}Ha.query||ba.value!=''||(gb=!0)}gb&&typeof Ha.query!='undefined'&&delete Ha.query;ba.valid=gb;var Ua=gina.validator.$forms[ba.target.form.getAttribute('id')].cachedErrors||{};if(Ha.count()>0){ba.errors=Ha;typeof g[ba.name].errors==
81
+ 'undefined'&&(g[ba.name].errors={});g[ba.name].errors=m(g[ba.name].errors,Ha);typeof Ha.query!='undefined'&&Ha.query&&(typeof Ua[ba.name]=='undefined'&&(Ua[ba.name]={}),typeof Ua[ba.name].query=='undefined'&&(Ua[ba.name].query={}),Ua[ba.name].query[ba.value]=Ha.query.slice(0));var cb=ba.target.getAttribute('data-gina-form-errors');/query/.test(cb)||ba.target.setAttribute('data-gina-form-errors',cb&&cb!=''?cb+' query':'query')}else typeof Ua[ba.name]!='undefined'&&typeof Ua[ba.name].query!='undefined'&&
82
+ typeof Ua[ba.name].query[ba.value]!='undefined'&&delete Ua[ba.name].query[ba.value];var k=ba.target.id||ba.target.getAttribute('id');console.debug('prematurely completed event `asyncCompleted.'+k+'`');return triggerEvent(gina,ba.target,'asyncCompleted.'+k,g[ba.name])}catch(w){return Cb(w)}};Va&&(Va.onerror=function(rb,gb){try{var Ha={status:Va.status,error:'Transaction error: might be due to the server CORS settings.\nPlease, check the console for more details.'};console.debug('query error [2] detected !! ',
83
+ gb,'Transaction error: might be due to the server CORS settings.\nPlease, check the console for more details.');isOnException=!0;Ha=this.responseText;var Fb=this.getResponseHeader('Content-Type');if(/\/json/.test(Fb))Ha=JSON.parse(this.responseText),typeof Ha.status=='undefined'&&(Ha.status=this.status);else if(Ha={status:Va.status,message:''},/^(\{|\[)/.test(Va.responseText))try{Ha=m(Ha,JSON.parse(Va.responseText))}catch(Ib){Ha=m(Ha,Ib)}return qb(Ha)}catch(Ib){return Cb(Ib)}},Va.onload=function(){try{Ya=
84
+ this.responseText;var rb=this.getResponseHeader('Content-Type');if(/\/json/.test(rb))Ya=JSON.parse(this.responseText),typeof Ya.status=='undefined'&&(Ya.status=this.status);else if(Ya={status:Va.status,message:''},/^(\{|\[)/.test(Va.responseText))try{Ya=m(Ya,JSON.parse(Va.responseText))}catch(gb){Ya=m(Ya,gb)}return qb(Ya)}catch(gb){return Cb(gb)}},ba.target&&ba.target.dataset&&(ba.target.dataset.ginaFormValidatorQueryPending=ba.value),f?Va.send(na):Va.send())}else{console.debug('stopping on errors ...');
85
+ var Jb=this.target,Mb=this.name;queueMicrotask(function(){triggerEvent(gina,Jb,'asyncCompleted.'+Ia,g[Mb])})}};A=async function(K,fa,na,Ia){var O=(new (require(_(GINA_FRAMEWORK_DIR+'/core/config.js',!0)))).getInstance(),T=null,ya=null,ja=null,Ea=getContext('bundle');if(/@/.test(K.url)){var Da=K.url.split(/@/);ya=Da[0];ja=Da[1];try{O.bundle!==ja&&(T=JSON.clone(getConfig(Ea,'app').proxy[ja]))}catch(Ka){throw Error('Could not retrieve `proxy` configuration for bundle `'+ja+'`. Please check your `/config/app.json`.\n'+
86
+ Ka.stack);}Da=null}else throw Error('external url/domain not handled at this moment, please contact us if you need support for it.');Da=JSON.clone(E.getRoute(K.url,K.data));var wa=O[ja][O.env],Va=wa.content.server;typeof Va._cached=='undefined'&&(Va._cached=new Map);typeof Va._cachedPath=='undefined'&&(Va._cachePath=Va.cache.path);typeof Va._cacheIsEnabled=='undefined'&&(Va._cacheIsEnabled=Va.cache.enable);T||(O.bundle==ja&&(T=getConfig(Ea,'settings').server.credentials,K.ca=T.ca||null,K.hostname=
87
+ wa.server.scheme+'://'+wa.host,K.port=wa.port[wa.server.protocol][wa.server.scheme],K.protocol=wa.server.protocol,K.rejectUnauthorized=!1),T={ca:K.ca,hostname:K.hostname,port:K.port,path:K.path},typeof K.protocol!='undefined'&&(T.protocol=K.protocol),typeof K.rejectUnauthorized!='undefined'&&(T.rejectUnauthorized=K.rejectUnauthorized));ya={method:Da.method,requirements:Da.requirements,namespace:Da.namespace||void 0,url:decodeURI(Da.url),rule:ya+'@'+ja,param:JSON.clone(Da.param),middleware:JSON.clone(Da.middleware),
88
+ bundle:Da.bundle,isXMLRequest:fa.isXMLRequest,isWithCredentials:fa.isWithCredentials};ja=ya.rule.replace('@'+ja,'')||'_common';ja={template:typeof wa.content.templates!='undefined'?wa.content.templates[ja]||wa.content.templates._common:void 0,isCacheless:wa.isCacheless};ja=m(ja,ya);wa=JSON.clone(wa);ja.conf=wa;ja.conf.content.routing[ja.rule].param=ya.param;ja.template&&typeof ja.template.ginaLoader=='undefined'&&(ja.template.ginaLoader=ja.conf.content.templates._common.ginaLoader);ja.conf.content.routing[ja.rule].param=
89
+ ya.param;delete ja.middleware;delete ja.param;delete ja.requirements;wa=new (require(_(GINA_FRAMEWORK_DIR+'/core/controller/controller.js'),!0))(ja);wa.name=Da.param.control;wa.serverInstance=process.gina&&process.gina._serverInstance?process.gina._serverInstance:Va;wa.setOptions(fa,na,Ia,ja);fa=typeof K.data=='object'&&ownCount(K.data)>0?K.data:{};if(/^get|delete|put$/i.test(K.method)){na=0;for(let Ka in fa)typeof fa[Ka]=='object'&&encodeRFC5987ValueChars(JSON.stringify(fa[Ka])),na++}T.method=K.method;
90
+ T.path=Da.url;K=require('util').promisify;var ba={isValid:!1},Ga=!1;await K(wa.query)(T,fa).then(function(Ka){ba=Ka}).catch(function(Ka){Ga=Ka});Ga&&(console.error(Ga),ba.error=Ga);return ba};var ka=null;ka=D?X:A;var ua=function(K,fa){var na=null,Ia=null;typeof g[K]=='undefined'&&typeof fa!='undefined'&&(g[K]=na=fa);if(typeof g[K]=='object')try{na=JSON.parse(JSON.stringify(g[K]))}catch(O){na=g[K]}else na=g[K];Ia='';D&&typeof q!='undefined'&&(Ia=q[K].getAttribute('data-gina-form-field-label')||'');
91
+ g[K]={target:D&&typeof q!='undefined'?q[K]:null,name:K,value:na,valid:!1,label:Ia,exclude:!1};g[K].is=function(O,T,ya){var ja=!1,Ea=typeof window!='undefined'?window:typeof global!='undefined'?global:null,Da=Ea&&typeof Ea._currentValidatorAlias!='undefined'?Ea._currentValidatorAlias:'is';Ea&&Ea._currentValidatorAlias&&delete Ea._currentValidatorAlias;Ea=g[this.name].errors||{};r.data[this.name]=g[this.name].value;this.value===''&&(ja=!0);if(!ja&&/^(true|false)$/i.test(O))ja=O;else if(!ja){var wa=
92
+ null,Va=null;if(/[!=>><a-z 0-9]+/i.test(O)){var ba=[];for(Ka in g)g.hasOwnProperty(Ka)&&g[Ka]&&typeof g[Ka]=='object'&&'value'in g[Ka]&&ba.push(Ka);var Ga=function(Ya){Ya=g[Ya].value;return Ya==''?'""':typeof Ya=='string'?JSON.stringify(Ya):Ya};wa=/"(?:[^"\\]|\\.)*"|[^"]+/g;var Ka=O;/^\//.test(O)||(Ka=O.replace(wa,function(Ya){return Ya.charAt(0)==='"'?Ya:substituteFieldTokens(Ya,ba,Ga)}));try{if(/^\//.test(Ka)){var $a=Ka.match(/^\/(.+)\/([a-z]*)$/);if(!$a)throw Error('Invalid regex literal: `'+Ka+
93
+ '`');ja=(new RegExp($a[1],$a[2])).test(this.value)}else{Ka=Ka.replace(wa,function(Ya){return Ya.charAt(0)==='"'?Ya:Ya.replace(/(\(|\)|return)/g,'')});O=/^\s*(null|undefined|true|false|"(?:[^"\\]|\\.)*"|-?\d+(?:\.\d+)?)\s*(===|!==|<=|>=|==|!=|<|>)\s*(null|undefined|true|false|"(?:[^"\\]|\\.)*"|-?\d+(?:\.\d+)?)\s*$/;var ib=typeof Ka=='string'?Ka.match(O):null;if(ib){O=function(Ya){var sb=Ya.replace(/^\s+|\s+$/g,'');if(sb==='null')return null;if(sb!=='undefined'){if(sb==='true')return!0;if(sb==='false')return!1;
94
+ if(/^"(?:[^"\\]|\\.)*"$/.test(sb))try{return JSON.parse(sb)}catch(qb){if(/^"[^"]*"$/.test(sb))return sb.slice(1,-1);throw qb;}var Cb=Number(sb);if(!isNaN(Cb)&&sb!=='')return Cb;throw Error('Invalid operand: `'+Ya+'`');}};Va=wa=$a=null;try{$a=O(ib[1]),wa=O(ib[3])}catch(Ya){Va=Ya}if(Va)console.warn('[FormValidator] Could not read an operand of `'+Ka+'` - treating field as invalid.\n('+Va.message+')'),ja=!1;else switch(ib[2]){case '===':ja=$a===wa;break;case '!==':ja=$a!==wa;break;case '==':ja=$a==wa;
95
+ break;case '!=':ja=$a!=wa;break;case '<':ja=$a<wa;break;case '>':ja=$a>wa;break;case '<=':ja=$a<=wa;break;case '>=':ja=$a>=wa}}else console.warn('[FormValidator] Could not evaluate condition `'+Ka+'` - treating field as invalid.\n(grammar: <operand><op><operand>; operand \u2208 number | "string" | true | false | null | undefined; op \u2208 === !== == != < > <= >=)'),ja=!1}}catch(Ya){throw Error(Ya.stack||Ya.message);}}else if(O instanceof RegExp)ja=O.test(this.value)?!0:!1;else if(typeof O=='boolean')ja=
96
+ O?!0:!1;else try{if(/\/(.*)\//.test(O))wa=O.match(/\/(.*)\//).pop(),Va=O.replace('/'+wa+'/',''),ja=(new RegExp(wa,Va)).test(this.value);else throw Error('[FormValidator] Unsupported condition shape \u2014 supported: binary comparison (a OP b), RegExp, boolean, /regex/flags literal. Got: `'+O+'`');}catch(Ya){throw Error(Ya.stack||Ya.message);}}ja?ja&&typeof Ea[Da]!='undefined'&&delete Ea[Da]:(Ea[Da]=pa(this.error||T||r.errorLabels[Da]||r.errorLabels.is,this,Da),typeof ya!='undefined'&&(Ea.stack=ya));
97
+ this.valid=ja&&!Ea.isRequired;Ea.count()>0&&(this.errors=Ea);return g[this.name]};g[K].set=function(O){this.value=r.data[this.name]=O;D&&this.target&&this.target.setAttribute('value',O);return g[this.name]};g[K].isEmail=function(){this.value=r.data[this.name]=this.value&&typeof this.value=='string'?this.value.toLowerCase():this.value;D&&this.target&&this.target.value!=''&&/[A-Z]+/.test(this.target.value)&&(this.target.value=this.value);var O=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(this.value)?
98
+ !0:!1,T=g[this.name].errors||{};this.value===''&&(O=!0);O?O&&typeof T.isEmail!='undefined'&&delete T.isEmail:T.isEmail=pa(this.error||r.errorLabels.isEmail,this,'isEmail');this.valid=O&&!T.isRequired;T.count()>0&&(this.errors=T);return g[this.name]};g[K].isJsonWebToken=function(){this.value=r.data[this.name]=this.value&&typeof this.value=='string'?this.value.toLowerCase():this.value;D&&this.target&&this.target.value!=''&&/[A-Z]+/.test(this.target.value)&&(this.target.value=this.value);var O=/^[A-Za-z0-9-_=]+\.[A-Za-z0-9-_=]+\.?[A-Za-z0-9-_.+/=]*$/.test(this.value)?
99
+ !0:!1,T=g[this.name].errors||{};this.value===''&&(O=!0);O?O&&typeof T.isJsonWebToken!='undefined'&&delete T.isJsonWebToken:T.isJsonWebToken=pa(this.error||r.errorLabels.isJsonWebToken,this,'isJsonWebToken');this.valid=O&&!T.isRequired;T.count()>0&&(this.errors=T);return g[this.name]};g[K].isIban=function(){var O=this.value&&typeof this.value=='string'?this.value.toUpperCase().replace(/[\s-]+/g,''):this.value,T=/^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$/;if(T=typeof O=='string'&&T.test(O)?!0:!1){var ya=O.slice(0,
100
+ 2);typeof Z[ya]!='undefined'&&O.length!==Z[ya]&&(T=!1)}if(T){T=O.slice(4)+O.slice(0,4);O='';ya=0;for(var ja=T.length;ya<ja;++ya){var Ea=T.charCodeAt(ya);O+=Ea>=65?(Ea-55).toString():T.charAt(ya)}ya=T=0;for(ja=O.length;ya<ja;ya+=7)T=parseInt(T.toString()+O.slice(ya,ya+7),10)%97;T=T===1}O=g[this.name].errors||{};this.value===''&&(T=!0);r.data[this.name]=this.value;T?T&&typeof O.isIban!='undefined'&&delete O.isIban:O.isIban=pa(this.error||r.errorLabels.isIban,this,'isIban');this.valid=T&&!O.isRequired;
101
+ O.count()>0&&(this.errors=O);return g[this.name]};g[K].isBic=function(){var O=/^[A-Za-z]{4}[A-Za-z]{2}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/.test(this.value)?!0:!1,T=g[this.name].errors||{};this.value===''&&(O=!0);r.data[this.name]=this.value;O?O&&typeof T.isBic!='undefined'&&delete T.isBic:T.isBic=pa(this.error||r.errorLabels.isBic,this,'isBic');this.valid=O&&!T.isRequired;T.count()>0&&(this.errors=T);return g[this.name]};g[K].isBoolean=function(){var O=null,T=g[this.name].errors||{};if(this.value===
102
+ '')var ya=!0;else{switch(this.value){case 'true':case !0:case 1:O=this.value=r.data[this.name]=!0;break;case 'false':case !1:case 0:O=this.value=r.data[this.name]=!1}ya=O!==null?!0:!1;O!==null&&T.isRequired&&delete T.isRequired}ya?ya&&typeof T.isBoolean!='undefined'&&delete T.isBoolean:T.isBoolean=pa(this.error||r.errorLabels.isBoolean,this,'isBoolean');this.valid=ya&&!T.isRequired;T.count()>0&&(this.errors=T);return g[this.name]};g[K].isNumber=function(O,T){var ya=this.value,ja=!1,Ea=!0,Da=!0,wa=
103
+ g[this.name].errors||{};try{typeof ya=='string'&&/,|\./g.test(ya)?ya=r.data[this.name]=this.value=parseFloat(ya.replace(/,/g,'.').replace(/\s+/g,'')):typeof ya=='string'&&ya!=''&&(ya=r.data[this.name]=this.value=parseInt(ya.replace(/\s+/g,'')))}catch(ba){wa.isNumber=pa(this.error||r.errorLabels.isNumber,this,'isNumber'),this.valid=!1,wa.count()>0&&(this.errors=wa)}if(+ya===+ya&&(ja=!0,!wa.isRequired&&ya!=='')){var Va=ya.toString().length;O&&typeof O=='number'&&Va<O&&(Ea=!1,this.size=O);T&&typeof T==
104
+ 'number'&&Va>T&&(Da=!1,this.size=T)}ja&&Ea&&Da||(ja||(wa.isNumber=pa(this.error||r.errorLabels.isNumber,this,'isNumber')),Ea&&Da||(Ea||(wa.isNumberLength=pa(this.error||r.errorLabels.isNumberMinLength,this,'isNumberMinLength')),Da||(wa.isNumberLength=pa(this.error||r.errorLabels.isNumberMaxLength,this,'isNumberMaxLength')),O===T&&(wa.isNumberLength=pa(this.error||r.errorLabels.isNumberLength,this,'isNumberLength'))),ja=!1);ja&&typeof wa.isNumberLength!='undefined'&&delete wa.isNumberLength;this.valid=
105
+ ja;this.value=r.data[this.name]=ya!=''?Number(ya):ya;wa.count()>0&&(this.errors=wa);return g[this.name]};g[K].toInteger=function(){var O=this.value,T=g[this.name].errors||{};if(O)try{this.value=r.data[this.name]=Math.round(O)}catch(ya){T.toInteger=pa(this.error||r.errorLabels.toInteger,this,'toInteger'),this.valid=!1,T.count()>0&&(this.errors=T)}return g[this.name]};g[K].isInteger=function(O,T){var ya=this.value,ja=!1,Ea=!0,Da=!0,wa=g[this.name].errors||{};+ya===+ya&&ya%1===0&&(ja=!0,wa.isRequired||
106
+ ya===''||(O&&typeof O=='number'&&ya.toString().length<O&&(Ea=!1,this.size=O),T&&typeof T=='number'&&ya.toString().length>T&&(Da=!1,this.size=T)));ja&&Ea&&Da||(ja||(wa.isInteger=pa(this.error||r.errorLabels.isInteger,this,'isInteger')),Ea&&Da||(Ea||(wa.isIntegerLength=pa(this.error||r.errorLabels.isIntegerMinLength,this,'isIntegerMinLength'),ja=!1),Da||(wa.isIntegerLength=pa(this.error||r.errorLabels.isIntegerMaxLength,this,'isIntegerMaxLength'),ja=!1),O===T&&(wa.isIntegerLength=pa(this.error||r.errorLabels.isIntegerLength,
107
+ this,'isIntegerLength'),ja=!1)));this.valid=ja;this.value=r.data[this.name]=Number(ya);wa.count()>0&&(this.errors=wa);return g[this.name]};g[K].toFloat=function(O){var T=null,ya=!1;this.target&&typeof document!=='undefined'&&document&&typeof document.getElementById==='function'&&(T=document.getElementById(this.target.getAttribute('id')));T=T&&typeof T.value!='undefined'?T.value||this.value:this.value;typeof T=='string'&&(T=T.replace(/\s+/g,''),/,/.test(T)&&/\./.test(T)?T=T.replace(/,/g,''):/,/.test(T)&&
108
+ (T=T.replace(/,/g,'.'),ya=!0));r.data[this.name]=T;var ja=g[this.name].errors||{},Ea=!0;O?this.decimals=parseInt(O):typeof this.decimals=='undefined'&&(this.decimals=2);if(T)if(this.isNumber().valid)try{Number.isFinite(T)||(T=new Number(parseFloat(T.match(/[0-9.,]+/g).join('').replace(/,/,'.'))))}catch(Da){Ea=!1,ja.toFloat=pa(this.error||r.errorLabels.toFloat,this,'toFloat'),this.valid=!1,ja.count()>0&&(this.errors=ja)}else Ea=!1,ja.toFloat=pa(this.error||r.errorLabels.toFloatNAN,this,'toFloatNAN');
109
+ else return g[this.name];this.decimals&&T&&!ja.toFloat&&(T=parseFloat(T.toFixed(this.decimals)));this.value=r.data[this.name]=T;D&&(ya&&(T=(''+T).replace(/\./g,',')),this.target.setAttribute('value',T));this.valid=Ea;ja.count()>0&&(this.errors=ja);return g[this.name]};g[K].isFloat=function(O){typeof this.value=='string'&&(this.value=this.value.replace(/\s+/g,''));var T=r.data[this.name]=this.value;O=g[this.name].errors||{};typeof T=='string'&&/\./.test(T)&&Number.isFinite(Number(T));typeof T=='string'&&
110
+ /,/g.test(T)&&(T=this.value=r.data[this.name]=Number(T.replace(/,/g,'.')));T=Number(T);Number.isFinite(T)&&T%1!==0?(this.value=r.data[this.name]=T,T=!0):T=!1;this.value===''&&(T=!0);T||(O.isFloat=pa(this.error||r.errorLabels.isFloat,this,'isFloat'));this.valid=T&&!O.isRequired;O.count()>0&&(this.errors=O);return g[this.name]};g[K].isRequired=function(O){if(typeof O=='boolean'&&!O)return this.valid=!0,O=r.excluded.indexOf(this.name),O>-1&&r.excluded.splice(O,1),g[this.name];if(D&&this.target&&this.target.tagName==
111
+ 'INPUT'&&typeof this.target.type!='undefined'&&this.target.type=='radio'){var T=this.target;O=document.getElementsByName(this.name);O=Array.prototype.filter.call(O,function(Ea){return Ea.form===T.form});for(var ya=0,ja=O.length;ya<ja;++ya)if(O[ya].checked){/true|false/.test(O[ya].value)?this.value=r.data[this.name]=/true/.test(O[ya].value)?!0:!1:this.value=r.data[this.name]=O[ya].value;this.valid=!0;break}}O=typeof this.value=='undefined'||this.value==null||this.value==''||/^\s+$/.test(this.value)?
112
+ !1:!0;ya=g[this.name].errors||{};O?O&&(v(this),typeof ya.isRequired!='undefined'&&delete ya.isRequired):(ja=D&&this&&this.target&&typeof gina!='undefined'&&typeof gina.validator!='undefined'&&typeof gina.validator.isAutofillValueWithheld=='function'?gina.validator.isAutofillValueWithheld(this.target):!1,ja?(ya.isRequired=pa(this.error||r.errorLabels.isRequiredAutofill,this,'isRequiredAutofill'),this.target.dataset&&(this.target.dataset.ginaFormAutofillWithheld='true')):(ya.isRequired=pa(this.error||
113
+ r.errorLabels.isRequired,this,'isRequired'),v(this)));this.valid=O;ya.count()>0&&(this.errors=ya);return g[this.name]};g[K].isString=function(O,T){var ya=r.data[this.name]=this.value,ja=!1,Ea=!0,Da=!0,wa=g[this.name].errors||{};typeof ya!='string'||wa.isRequired||ya==''||(ja=!0,O&&typeof O=='number'&&ya.length<O&&(Ea=!1,this.size=O),T&&typeof T=='number'&&ya.length>T&&(Da=!1,this.size=T));ja&&Ea&&Da||(!ja&&wa.isRequired&&ya==''?ja=!1:ja||wa.isRequired||(ja=!0),Ea&&Da||(ja=!1,Ea||(wa.isStringLength=
114
+ pa(this.error||r.errorLabels.isStringMinLength,this,'isStringMinLength')),Da||(wa.isStringLength=pa(this.error||r.errorLabels.isStringMaxLength,this,'isStringMaxLength')),O===T&&(wa.isStringLength=pa(this.error||r.errorLabels.isStringLength,this,'isStringLength'))));this.valid=ja;wa.count()>0&&(this.errors=wa);return g[this.name]};g[K].isDate=function(O){var T=this.value,ya=!1,ja=g[this.name].errors||{},Ea=null;if(!T||T==''||/NaN|Invalid Date/i.test(T))return/NaN|Invalid Date/i.test(T)&&(console.warn('[FormValidator::isDate] Provided value for field `'+
115
+ this.name+'` is not allowed: `'+T+'`'),ja.isDate=pa(this.error||r.errorLabels.isDate,this,'isDate')),this.valid=ya,ja.count()>0&&(this.errors=ja),g[this.name];if(typeof O=='undefined'||typeof O!='undefined'&&/true/i.test(O))O='yyyy-mm-dd';if(T instanceof Date)T.format(O);else{try{Ea=O.match(/[^\/\- ]+/g)}catch(ib){throw Error('[FormValidator::isDate] Provided mask not allowed: `'+O+'`');}var Da={},wa,Va=null,ba=O=NaN,Ga=NaN;try{Va=T.match(/[^\/\- ]+/g);var Ka=0;for(wa=Ea.length;Ka<wa;++Ka)Da[Ea[Ka]]=
116
+ Va[Ka]}catch(ib){throw Error('[FormValidator::isDate] Provided value not allowed: `'+T+'`'+ib);}for(var $a in Da)/y/i.test($a)?O=parseInt(Da[$a],10):/m/i.test($a)?ba=parseInt(Da[$a],10):/d/i.test($a)&&(Ga=parseInt(Da[$a],10));if(!Number.isFinite(O)||!Number.isFinite(ba)||!Number.isFinite(Ga)||ba<1||ba>12||Ga<1||Ga>31)T=this.value=r.data[this.name]=new Date(NaN);else{T=new Date(O,ba-1,Ga);if(T.getFullYear()!==O||T.getMonth()!==ba-1||T.getDate()!==Ga)T=new Date(NaN);this.value=T;isNaN(T.getTime())?
117
+ r.data[this.name]=T:r.data[this.name]=T.getFullYear()+'-'+('0'+(T.getMonth()+1)).slice(-2)+'-'+('0'+T.getDate()).slice(-2)}if(/Invalid Date/i.test(T)||T instanceof Date===!1)return ja.isRequired||this.value!=''?ja.isDate=pa(this.error||r.errorLabels.isDate,this,'isDate'):ya=!0,this.valid=ya,ja.count()>0&&(this.errors=ja),g[this.name];ya=!0}this.valid=ya;return g[this.name]};g[K].isInList=function(){for(var O=g[this.name].errors||{},T=[],ya=0,ja=arguments.length;ya<ja;++ya){var Ea=typeof arguments[ya];
118
+ if(Ea!=='string'&&Ea!=='number'&&Ea!=='boolean')throw Error('`isInList` requires an array of allowed primitive values; got '+Ea+' at position '+ya+'. Use `isInList: ["a", "b", "c"]` form.');T.push(arguments[ya])}ya=r.data[this.name]=this.value;ja=!1;ya===''||ya==null?ja=!0:T.indexOf(ya)>-1&&(ja=!0);ja?typeof O.isInList!='undefined'&&delete O.isInList:(this.size=T.join(', '),O.isInList=pa(this.error||r.errorLabels.isInList,this,'isInList'));this.valid=ja&&!O.isRequired;O.count()>0&&(this.errors=O);
119
+ return g[this.name]};g[K].format=function(O,T){var ya=this.value;if(!ya)return g[this.name];if(typeof ya.format!=='function')throw Error('[FormValidator::format] field `'+this.name+'`: value is not a Date - apply isDate(mask) before format(mask)');return ya.format(O,T)};g[K].setFlash=function(O,T){typeof T!='undefined'&&T!=''&&(this.error=T);return g[this.name]};g[K].setLabel=function(O){typeof O!='undefined'&&O!=''&&(this.label=O);return g[this.name]};g[K].trim=function(O){if(typeof O=='boolean'&&
120
+ O)return typeof this.value=='string'&&(this.value=this.value.replace(/^\s+|\s+$/g,''),r.data[this.name]=r.data[this.name]=this.value),g[this.name]};g[K].exclude=function(O){if(typeof O=='boolean'&&!O)return/^true|false$/i.test(this.value)&&(this.value=/^true$/i.test(this.value)?!0:!1,r.data[this.name]=this.value),g[this.name];this.isExcluded=!1;r.excluded.indexOf(this.name)<0&&(r.excluded.push(this.name),this.isExcluded=!0);return g[this.name]};g[K].query=ka;g[K].getValidationContext=function(){return{isGFFCtx:D,
121
+ self:g,local:r,replace:pa}};if(W()){na=fa=null;try{for(let O in gina.forms.validators)if(na='/validators/'+O+'/main.js',typeof r.errorLabels[O]=='undefined'&&(r.errorLabels[O]='Condition not satisfied'),D)fa=Q(gina.forms.validators[O].data),fa=fa.replace(/(\)\s+\{|\)\{){1}/,'$&\n\tvar validationContext = this.getValidationContext(),isGFFCtx = validationContext.isGFFCtx,self = validationContext.self,local = validationContext.local,replace = validationContext.replace;'),g[K][O]=V(O,fa);else if(typeof gina.forms.validators[O]===
122
+ 'function')g[K][O]=gina.forms.validators[O];else throw Error('[UserFormValidator] custom validators run in the browser only \u2014 the server-side registration path is not wired (see the validation-rules reference, "Custom validators")');}catch(O){throw Error('[UserFormValidator] Could not evaluate: `'+na+'`\n'+O.stack);}}};for(let K in g)ua(K,g[K]);g.addField=function(K,fa){typeof g[K]=='undefined'&&ua(K,fa)};g.isValid=function(){return g.getErrors().count()>0?!1:!0};g.setErrors=function(K){if(!K)return{};
123
+ for(var fa in g)if(typeof g[fa]=='object'){for(var na in g[fa])typeof K[fa]=='object'&&typeof K[fa][na]!='undefined'&&(typeof g[fa].valid!='undefined'&&/^true$/i.test(g[fa].valid)?delete K[fa][na]:(typeof g[fa].errors=='undefined'&&(g[fa].errors={}),g[fa].errors[na]=K[fa][na]));(typeof g[fa].errors=='undefined'&&typeof K[fa]!='undefined'||typeof g[fa].errors!='undefined'&&g[fa].errors.count()==0&&typeof K[fa]!='undefined')&&delete K[fa]}return K};g.getErrors=function(K){var fa={};if(typeof K!='undefined')return typeof g[K]!=
124
+ 'undefined'&&g[K]&&typeof g[K].errors!='undefined'&&g[K].errors.count()>0&&(fa[K]=g[K].errors),fa;for(var na in g)typeof g[na]=='object'&&typeof g[na].errors!='undefined'&&g[na].errors.count()>0&&(fa[na]=g[na].errors);return fa};g.toData=function(){if(r.excluded.length>0)for(var K=0,fa=r.excluded.length;K<fa;++K)typeof r.data[r.excluded[K]]!='undefined'&&delete r.data[r.excluded[K]];return r.data};var pa=function(K,fa,na){if(typeof K!=='string'){var Ia=na&&typeof r.errorLabels[na]==='string'?r.errorLabels[na]:
125
+ na&&typeof n[na]==='string'?n[na]:'';na=na||'(unknown rule)';U[na]||(U[na]=!0,console.warn('[FormValidator] error label for rule `'+na+'` must be a string \u2014 got '+(K===null?'null':typeof K)+'. Falling back to '+(Ia?'`'+Ia+'`':'an empty message')+". Check the bundle catalog's `_validator` node, `setErrorLabels()`, the rule's `errorMessage` argument, and the field's `error`."));K=Ia}if(Ia=K.match(/%[a-z]+/gi)){na=0;for(var O=Ia.length;na<O;++na)K=K.replace(new RegExp(Ia[na],'g'),fa[r.keys[Ia[na]]])}return K};
126
126
  g.setErrorLabels=function(K){typeof K!='undefined'&&(Y(K),r.errorLabels=m(K,r.errorLabels))};return g}FormValidatorUtil.substituteFieldTokens=substituteFieldTokens;typeof module!=='undefined'&&module.exports?module.exports=FormValidatorUtil:typeof define==='function'&&define.amd&&define('lib/form-validator',[],function(){return FormValidatorUtil});
127
127
  function Routing(){var f=typeof module!=='undefined'&&module.exports?!1:!0,q={allowedMethods:['get','post','put','delete'],reservedParams:['controle','file','title','namespace','path'],notFound:{},getInstance:function(l){return Routing.instance}};if(typeof Routing.initialized=='undefined')Routing.initialized=!0,Routing.instance=q,Routing._cached=new Map;else return q=q.getInstance();var F=function(l,W){return l!==null&&typeof l!='undefined'&&Object.prototype.hasOwnProperty.call(l,W)};q.allowedMethodsString=
128
- q.allowedMethods.join(',');var H=null,N=null,U=null;f?(N&&typeof N=='function'||(N=require('lib/merge')),U&&typeof U=='function'||(U=require('lib/form-validator'))):(require('fs'),require('util'),require('../../inherits'),N=require('../../merge'),H=require(__dirname+'/../../../core/plugins')||getContext('gina').plugins,U=H.Validator);q.getUrlProps=function(l,W){var r={};if(f){var n=window.gina.config;r.hostname=n.hostname;typeof l!='undefined'&&(l=this.getRoute('webroot@'+l),r.hostname=l.hostname,
128
+ q.allowedMethods.join(',');var H=null,M=null,V=null;f?(M&&typeof M=='function'||(M=require('lib/merge')),V&&typeof V=='function'||(V=require('lib/form-validator'))):(require('fs'),require('util'),require('../../inherits'),M=require('../../merge'),H=require(__dirname+'/../../../core/plugins')||getContext('gina').plugins,V=H.Validator);q.getUrlProps=function(l,W){var r={};if(f){var n=window.gina.config;r.hostname=n.hostname;typeof l!='undefined'&&(l=this.getRoute('webroot@'+l),r.hostname=l.hostname,
129
129
  r.host=l.host,r.webroot=l.webroot)}else n=getContext('gina').config,typeof getContext('argvFilename')!='undefined'&&(n.getRouting=getContext('gina').Config.instance.getRouting),typeof l=='undefined'&&(l=n.bundle),typeof W=='undefined'&&(W=n.env),r.hostname=n.envConf[l][W].hostname,r.host=n.envConf[l][W].host,r.webroot=n.envConf[l][W].server.webroot;return r};q.cache=function(l,W,r,n,Z){Routing._cached.has(l)||(Routing._cached.size>=5E3&&q.invalidateCached(Routing._cached.keys().next().value),Routing._cached.set(l,
130
130
  {name:W,routing:r}))};q.getCached=function(l,W){var r=Routing._cached.get(l);if(r){var n=W.method.toLowerCase();l=JSON.clone(r.routing);r={method:n,requirements:l.requirements,namespace:l.namespace||void 0,url:safeDecodeURI(W.url),rule:l.originalRule||r.name,param:l.param,middleware:l.middleware,bundle:l.bundle,isXMLRequest:W.isXMLRequest,isWithCredentials:W.isWithCredentials};typeof l.rule=='undefined'&&typeof r.rule!='undefined'&&(l.rule=r.rule);typeof l.cache!='undefined'&&(r.cache=l.cache);typeof l.csrfExempt!=
131
131
  'undefined'&&(r.csrfExempt=l.csrfExempt);typeof l.culturePrefix!='undefined'&&(r.culturePrefix=l.culturePrefix);typeof l.queryTimeout!='undefined'&&(r.queryTimeout=parseTimeout(l.queryTimeout));typeof l.negotiate!='undefined'&&(r.negotiate=l.negotiate);typeof l.rateLimit!='undefined'&&(r.rateLimit=l.rateLimit);typeof l.idempotency!='undefined'&&(r.idempotency=l.idempotency);return q.compareUrls(r,l.url,W)}return null};q.invalidateCached=function(l){Routing._cached.delete(l)};q.compareUrls=async function(l,
132
- W,r,n,Z){typeof r=='undefined'&&(r={routing:{}});if(/,/.test(W)){var T=0;W=W.split(/,/g);for(var Y=W.length,v={past:!1,request:r};T<Y&&!v.past;)v=await D(l,W[T],r,n,Z),++T;return v}return await D(l,W,r,n,Z)};var D=async function(l,W,r,n,Z){var T=null;try{T=l.url.split(/\//)}catch(qa){console.warn(qa),T=['']}W=W.split(/\//);var Y=0,v=0,L=W.length,y=0,x={},R=0,X=r.method.toLowerCase(),g='get';try{g=l.method.toLowerCase()}catch(qa){}var V=!1;if(typeof l.requirements!='undefined'&&/get|delete/i.test(X)&&
133
- typeof r[X]!='undefined'||typeof l.requirements!='undefined'&&/get/i.test(X)&&/delete/i.test(g)){/get/i.test(X)&&/delete/i.test(g)&&(X=g);if(/^(delete)$/i.test(X)&&T.length===W.length){typeof r[X]=='undefined'&&(r[X]={});for(let qa=0,K=W.length;qa<K;qa++){if(T[qa]===W[qa]){++y;continue}g=W[qa].substring(1);if(!F(l.requirements,g)||typeof l.requirements[g]=='undefined')continue;g=l.requirements[g];V='';if(/^\//.test(g))V=g.substring(g.lastIndexOf('/')+1),g=g.substring(1,g.lastIndexOf('/'));else if(/^validator::/.test(g)&&
134
- await m(W[qa],T[qa],l,r,n,Z)){++y;continue}/^:/.test(W[qa])&&typeof g!='undefined'&&(new RegExp(g,V)).test(T[qa])&&(++y,r[X][W[qa].substring(1)]=T[qa])}V=!0}for(var fa in r[X])F(l.requirements,fa)&&typeof l.requirements[fa]!='undefined'&&W.indexOf(':'+fa)<0&&(W[v]=':'+fa,++v,T[Y]=r[X][fa],++Y,V||T.length!==W.length||++L)}if(!V&&T.length===W.length)for(;R<L;++R)T[R]===W[R]?++y:y==R&&/:/.test(W[R])&&await m(W[R],T[R],l,r,n,Z)&&++y;if(typeof l.requirements!='undefined'&&X==l.method.toLowerCase()&&!V&&
135
- y>=L)for(fa=Object.getOwnPropertyNames(l.requirements),Y=0,W.join(',').match(/:[-_a-z0-9]+/g);Y<fa.length;){v=fa[Y];if(typeof l.param[v]=='undefined'&&/^validator::/i.test(l.requirements[v])){if(W.length!=T.length)break;var ua=W.join(',').match(/:[-_a-z0-9]+/g);let qa=l.requirements[v];R={};g={};V={};try{g=JSON.parse(qa.split(/::/).splice(1)[0].replace(/([^:"\s+](\w+)):/g,'"$1":').replace(/([^:"\s+](\w+))\s+:/g,'"$1":'))}catch(K){throw K;}if(typeof g.query!='undefined'&&typeof g.query.data!='undefined'){R=
136
- g.query.data;for(let K in R)ua.indexOf(R[K])<0&&delete R[K];for(let K=0,ha=W.length;K<ha;K++){if(!/^:/.test(W[K]))continue;ua=W[K].replace(/^:/,'');ua!=''&&typeof T[K]!='undefined'&&(R[ua]=T[K],typeof r.params[ua]=='undefined'&&(r.params[ua]=T[K]))}}R=N(R,JSON.clone(r[X])||{});typeof R[v]=='undefined'&&(R[v]=null);V[v]=g;_validator=f?new U(R):new U('routing',R,null,V);if(g.count()==0){console.error('Route validation failed '+l.rule);--y;Y++;continue}for(let K in g)if(typeof g[K].data!='undefined'&&
137
- (g[K].data=R),V=Array.isArray(g[K])?await _validator[v][K].apply(_validator[v],g[K]):await _validator[v][K](g[K],r,n,Z),!V.isValid&&(--y,typeof V.error!='undefined'))throw V.error;}Y++}x.past=y===L?!0:!1;x.past&&(r.routing=A(l,r[X]),x.request=r);return x},m=async function(l,W,r,n,Z,T){var Y=-1,v=l.match(/:\w+/g);Y=new RegExp(l,'g');var L=null,y=null,x=null;L=!1;var R=L=y=y=null,X=null,g=n.method.toLowerCase();if(!v.length)return!1;r.param.path&&Y.test(r.param.path)&&(r.param.path=r.param.path.replace(Y,
132
+ W,r,n,Z){typeof r=='undefined'&&(r={routing:{}});if(/,/.test(W)){var U=0;W=W.split(/,/g);for(var Y=W.length,v={past:!1,request:r};U<Y&&!v.past;)v=await D(l,W[U],r,n,Z),++U;return v}return await D(l,W,r,n,Z)};var D=async function(l,W,r,n,Z){var U=null;try{U=l.url.split(/\//)}catch(pa){console.warn(pa),U=['']}W=W.split(/\//);var Y=0,v=0,L=W.length,y=0,x={},S=0,X=r.method.toLowerCase(),g='get';try{g=l.method.toLowerCase()}catch(pa){}var Q=!1;if(typeof l.requirements!='undefined'&&/get|delete/i.test(X)&&
133
+ typeof r[X]!='undefined'||typeof l.requirements!='undefined'&&/get/i.test(X)&&/delete/i.test(g)){/get/i.test(X)&&/delete/i.test(g)&&(X=g);if(/^(delete)$/i.test(X)&&U.length===W.length){typeof r[X]=='undefined'&&(r[X]={});for(let pa=0,K=W.length;pa<K;pa++){if(U[pa]===W[pa]){++y;continue}g=W[pa].substring(1);if(!F(l.requirements,g)||typeof l.requirements[g]=='undefined')continue;g=l.requirements[g];Q='';if(/^\//.test(g))Q=g.substring(g.lastIndexOf('/')+1),g=g.substring(1,g.lastIndexOf('/'));else if(/^validator::/.test(g)&&
134
+ await m(W[pa],U[pa],l,r,n,Z)){++y;continue}/^:/.test(W[pa])&&typeof g!='undefined'&&(new RegExp(g,Q)).test(U[pa])&&(++y,r[X][W[pa].substring(1)]=U[pa])}Q=!0}for(var ka in r[X])F(l.requirements,ka)&&typeof l.requirements[ka]!='undefined'&&W.indexOf(':'+ka)<0&&(W[v]=':'+ka,++v,U[Y]=r[X][ka],++Y,Q||U.length!==W.length||++L)}if(!Q&&U.length===W.length)for(;S<L;++S)U[S]===W[S]?++y:y==S&&/:/.test(W[S])&&await m(W[S],U[S],l,r,n,Z)&&++y;if(typeof l.requirements!='undefined'&&X==l.method.toLowerCase()&&!Q&&
135
+ y>=L)for(ka=Object.getOwnPropertyNames(l.requirements),Y=0,W.join(',').match(/:[-_a-z0-9]+/g);Y<ka.length;){v=ka[Y];if(typeof l.param[v]=='undefined'&&/^validator::/i.test(l.requirements[v])){if(W.length!=U.length)break;var ua=W.join(',').match(/:[-_a-z0-9]+/g);let pa=l.requirements[v];S={};g={};Q={};try{g=JSON.parse(pa.split(/::/).splice(1)[0].replace(/([^:"\s+](\w+)):/g,'"$1":').replace(/([^:"\s+](\w+))\s+:/g,'"$1":'))}catch(K){throw K;}if(typeof g.query!='undefined'&&typeof g.query.data!='undefined'){S=
136
+ g.query.data;for(let K in S)ua.indexOf(S[K])<0&&delete S[K];for(let K=0,fa=W.length;K<fa;K++){if(!/^:/.test(W[K]))continue;ua=W[K].replace(/^:/,'');ua!=''&&typeof U[K]!='undefined'&&(S[ua]=U[K],typeof r.params[ua]=='undefined'&&(r.params[ua]=U[K]))}}S=M(S,JSON.clone(r[X])||{});typeof S[v]=='undefined'&&(S[v]=null);Q[v]=g;_validator=f?new V(S):new V('routing',S,null,Q);if(g.count()==0){console.error('Route validation failed '+l.rule);--y;Y++;continue}for(let K in g)if(typeof g[K].data!='undefined'&&
137
+ (g[K].data=S),Q=Array.isArray(g[K])?await _validator[v][K].apply(_validator[v],g[K]):await _validator[v][K](g[K],r,n,Z),!Q.isValid&&(--y,typeof Q.error!='undefined'))throw Q.error;}Y++}x.past=y===L?!0:!1;x.past&&(r.routing=A(l,r[X]),x.request=r);return x},m=async function(l,W,r,n,Z,U){var Y=-1,v=l.match(/:\w+/g);Y=new RegExp(l,'g');var L=null,y=null,x=null;L=!1;var S=L=y=y=null,X=null,g=n.method.toLowerCase();if(!v.length)return!1;r.param.path&&Y.test(r.param.path)&&(r.param.path=r.param.path.replace(Y,
138
138
  W));r.param.namespace&&Y.test(r.param.namespace)&&(r.param.namespace=r.param.namespace.replace(Y,W));typeof r.param.file!='undefined'&&/:/.test(r.param.file)&&(L=new RegExp('(:'+l+'/|:'+l+'$)','g'),E.variable=W,r.param.file=r.param.file.replace(L,E),L=null);r.param.title&&Y.test(r.param.title)&&(r.param.title=r.param.title.replace(Y,W));if(v.length==1){L=new RegExp(v[0]);Y=v.indexOf(l)>-1?v.indexOf(l):!1;Y===!1&&l.match(L)&&(Y=0);if(Y===!1)return Y;if(r.method.toLowerCase()!==g)return!1;typeof n[g]==
139
- 'undefined'&&(n[g]={});x=v[Y].substring(1);if(typeof r.requirements=='undefined'||typeof r.requirements[x]=='undefined'||!F(r.requirements,x))return typeof r.param[x]!='undefined'&&F(r.param,x)&&typeof n.params!='undefined'&&W?(n.params[x]=W,typeof n[g][x]=='undefined'&&(n[g][x]=W),!0):!1;Y=r.requirements[x];if(/^\//.test(Y))L=Y.match(/\/(.*)\//).pop(),y=Y.replace('/'+L+'/',''),L=(new RegExp(L,y)).test(W);else if(/^validator::/.test(Y)&&W){y={};L={};R={};X='';l.replace(new RegExp('[^'+x+']','g'),
140
- function(){X+=arguments[0]});y[x]=W.replace(new RegExp(X,'g'),'');try{L=JSON.parse(Y.split(/::/).splice(1)[0].replace(/([^:"\s+](\w+)):/g,'"$1":').replace(/([^:"\s+](\w+))\s+:/g,'"$1":'))}catch(K){throw K;}typeof L.query!='undefined'&&typeof L.query.data!='undefined'&&l==L.query.data[Object.keys(L.query.data)[0]]&&(L.query.data[Object.keys(L.query.data)[0]]=y[x],n.params[x]=y[x]);R[x]=L;y=new U('routing',y,null,R);if(L.count()==0)return console.error('Route validation failed '+r.rule),!1;for(var V in L)Array.isArray(L[V])?
141
- await y[x][V].apply(y[x],L[V]):await y[x][V](L[V],n,Z,T);L=y.isValid()}else L=(new RegExp(r.requirements[x])).test(W);if(typeof r.param[x]!='undefined'&&F(r.param,x)&&typeof r.requirements!='undefined'&&typeof r.requirements[x]!='undefined'&&F(r.requirements,x)&&typeof n.params!='undefined'&&L){n.params[x]=W;if(typeof n[g][x]=='undefined'){switch(W){case 'null':W=null;break;case 'false':W=!1;break;case 'true':W=!0}n[g][x]=W}return!0}}else{if(typeof r.requirements=='undefined')return!1;Z=r.url;T=n.url;
142
- g={};R='';var fa=!1,ua=0;V=0;for(var qa=T.length;V<qa;++V)if(T.charAt(V)!=Z.charAt(ua)||fa){if(R=='')fa=!0,R+=T.charAt(V);else if(V>Z.indexOf(v[0])+v[0].length){Y=r.requirements[v[0]];W=R.substring(0,R.length);if(/^\//.test(Y))L=Y.match(/\/(.*)\//).pop(),y=Y.replace('/'+L+'/',''),L=(new RegExp(L,y)).test(W);else if(/^validator::/.test(Y)){y={};L={};R={};X='';l.replace(new RegExp('[^'+x[0]+']','g'),function(){X+=arguments[0]});y[x[0]]=W.replace(new RegExp(X,'g'),'');L=JSON.parse(Y.split(/::/).splice(1)[0].replace(/([^\W+ true false])+(\w+)/g,
143
- '"$&"'));R[x[0]]=L;y=new U('routing',y,null,R);for(let K in L)if(Array.isArray(L[K]))y[x[0]][K].apply(y[x[0]],L[K]);else y[x[0]][K](L[K]);L=y.isValid()}else L=(new RegExp(r.requirements[x[0]])).test(W);if(L)g[v[0].substring(1)]=W;else return!1;R='';fa=!1;ua=Z.indexOf(v[0])+v[0].length;--V;v.splice(0,1)}else R+=T.charAt(V),++ua;if(V==qa-1)if(Y=r.requirements[v[0]],W=R.substring(0,R.length),/^\//.test(Y)?(L=Y.match(/\/(.*)\//).pop(),y=Y.replace('/'+L+'/',''),L=(new RegExp(L,y)).test(W)):L=(new RegExp(r.requirements[x])).test(W),
144
- L)g[v[0].substring(1)]=W;else return!1}else++ua;if(g.count()==v.length){x=null;for(x in g){switch(g[x]){case 'null':g[x]=null;break;case 'false':g[x]=!1;break;case 'true':g[x]=!0}n.params[x]=g[x]}return!0}}return!1},E=function(l){return/\/$/.test(l)?E.variable+'/':E.variable},A=function(l,W){var r=null,n,Z=l.url,T=null;for(T in l.param)if((typeof W=='undefined'||typeof W[T]!='undefined')&&/^:/.test(l.param[T])){var Y=l.param[T].substring(1);if(typeof W!='undefined'&&typeof W[Y]!='undefined'){var v=
139
+ 'undefined'&&(n[g]={});x=v[Y].substring(1);if(typeof r.requirements=='undefined'||typeof r.requirements[x]=='undefined'||!F(r.requirements,x))return typeof r.param[x]!='undefined'&&F(r.param,x)&&typeof n.params!='undefined'&&W?(n.params[x]=W,typeof n[g][x]=='undefined'&&(n[g][x]=W),!0):!1;Y=r.requirements[x];if(/^\//.test(Y))L=Y.match(/\/(.*)\//).pop(),y=Y.replace('/'+L+'/',''),L=(new RegExp(L,y)).test(W);else if(/^validator::/.test(Y)&&W){y={};L={};S={};X='';l.replace(new RegExp('[^'+x+']','g'),
140
+ function(){X+=arguments[0]});y[x]=W.replace(new RegExp(X,'g'),'');try{L=JSON.parse(Y.split(/::/).splice(1)[0].replace(/([^:"\s+](\w+)):/g,'"$1":').replace(/([^:"\s+](\w+))\s+:/g,'"$1":'))}catch(K){throw K;}typeof L.query!='undefined'&&typeof L.query.data!='undefined'&&l==L.query.data[Object.keys(L.query.data)[0]]&&(L.query.data[Object.keys(L.query.data)[0]]=y[x],n.params[x]=y[x]);S[x]=L;y=new V('routing',y,null,S);if(L.count()==0)return console.error('Route validation failed '+r.rule),!1;for(var Q in L)Array.isArray(L[Q])?
141
+ await y[x][Q].apply(y[x],L[Q]):await y[x][Q](L[Q],n,Z,U);L=y.isValid()}else L=(new RegExp(r.requirements[x])).test(W);if(typeof r.param[x]!='undefined'&&F(r.param,x)&&typeof r.requirements!='undefined'&&typeof r.requirements[x]!='undefined'&&F(r.requirements,x)&&typeof n.params!='undefined'&&L){n.params[x]=W;if(typeof n[g][x]=='undefined'){switch(W){case 'null':W=null;break;case 'false':W=!1;break;case 'true':W=!0}n[g][x]=W}return!0}}else{if(typeof r.requirements=='undefined')return!1;Z=r.url;U=n.url;
142
+ g={};S='';var ka=!1,ua=0;Q=0;for(var pa=U.length;Q<pa;++Q)if(U.charAt(Q)!=Z.charAt(ua)||ka){if(S=='')ka=!0,S+=U.charAt(Q);else if(Q>Z.indexOf(v[0])+v[0].length){Y=r.requirements[v[0]];W=S.substring(0,S.length);if(/^\//.test(Y))L=Y.match(/\/(.*)\//).pop(),y=Y.replace('/'+L+'/',''),L=(new RegExp(L,y)).test(W);else if(/^validator::/.test(Y)){y={};L={};S={};X='';l.replace(new RegExp('[^'+x[0]+']','g'),function(){X+=arguments[0]});y[x[0]]=W.replace(new RegExp(X,'g'),'');L=JSON.parse(Y.split(/::/).splice(1)[0].replace(/([^\W+ true false])+(\w+)/g,
143
+ '"$&"'));S[x[0]]=L;y=new V('routing',y,null,S);for(let K in L)if(Array.isArray(L[K]))y[x[0]][K].apply(y[x[0]],L[K]);else y[x[0]][K](L[K]);L=y.isValid()}else L=(new RegExp(r.requirements[x[0]])).test(W);if(L)g[v[0].substring(1)]=W;else return!1;S='';ka=!1;ua=Z.indexOf(v[0])+v[0].length;--Q;v.splice(0,1)}else S+=U.charAt(Q),++ua;if(Q==pa-1)if(Y=r.requirements[v[0]],W=S.substring(0,S.length),/^\//.test(Y)?(L=Y.match(/\/(.*)\//).pop(),y=Y.replace('/'+L+'/',''),L=(new RegExp(L,y)).test(W)):L=(new RegExp(r.requirements[x])).test(W),
144
+ L)g[v[0].substring(1)]=W;else return!1}else++ua;if(g.count()==v.length){x=null;for(x in g){switch(g[x]){case 'null':g[x]=null;break;case 'false':g[x]=!1;break;case 'true':g[x]=!0}n.params[x]=g[x]}return!0}}return!1},E=function(l){return/\/$/.test(l)?E.variable+'/':E.variable},A=function(l,W){var r=null,n,Z=l.url,U=null;for(U in l.param)if((typeof W=='undefined'||typeof W[U]!='undefined')&&/^:/.test(l.param[U])){var Y=l.param[U].substring(1);if(typeof W!='undefined'&&typeof W[Y]!='undefined'){var v=
145
145
  new RegExp('(:'+Y+'/|:'+Y+'$)','g');typeof l.param.path!='undefined'&&/:/.test(l.param.path)&&(l.param.path=l.param.path.replace(v,W[Y]));typeof l.param.title!='undefined'&&/:/.test(l.param.title)&&(l.param.title=l.param.title.replace(v,W[Y]));typeof l.param.namespace!='undefined'&&/:/.test(l.param.namespace)&&(l.param.namespace=l.param.namespace.replace(v,W[Y]));typeof l.param.file!='undefined'&&/:/.test(l.param.file)&&(E.variable=W[Y],l.param.file=l.param.file.replace(v,E));if(/,/.test(l.url)){r=
146
- l.url.split(/,/g);var L=0;for(n=r.length;L<n;++L)E.variable=W[Y],r[L]=r[L].replace(v,E);l.url=r.join(',')}else E.variable=W[Y],l.url=l.url.replace(v,E)}}if(r){L=0;n=r.length;Z=Z.split(/,/g);var y=0;for(l.urlIndex=0;L<n;++L)if(r=0,v=Z[0].match(/:[-_a-z0-9]+/ig)){T=0;for(Y=v.length;T<Y;T++){var x=v[T].substring(1);typeof W[x]!='undefined'&&W[x]&&r++}r>y&&(y=r,l.urlIndex=L)}}return l},aa=!1;q.getRoute=function(l,W,r){var n=null,Z=!1,T=null;if(f)window.location.port||window.location.hostname!=window.gina.config.hostname.replace(/^(https|http|wss|ws):\/\//,
147
- '').replace(/:\d+$/,'')||(Z=!0,window.gina.config.hostname=window.gina.config.hostname.replace(/^(https|http|wss|ws):\/\//,'').replace(/:\d+$/,'')),n=window.gina.config;else{n=getContext('gina').config;typeof getContext('argvFilename')!='undefined'&&(n.getRouting=getContext('gina').Config.instance.getRouting);var Y=process.gina&&process.gina._reqALS?process.gina._reqALS.getStore():null;Z=(T=Y&&Y.proxy?Y.proxy:null)?T.isProxyHost:getContext('isProxyHost')||!1}var v=n.env||GINA_ENV,L=null;Y=n.bundle;
146
+ l.url.split(/,/g);var L=0;for(n=r.length;L<n;++L)E.variable=W[Y],r[L]=r[L].replace(v,E);l.url=r.join(',')}else E.variable=W[Y],l.url=l.url.replace(v,E)}}if(r){L=0;n=r.length;Z=Z.split(/,/g);var y=0;for(l.urlIndex=0;L<n;++L)if(r=0,v=Z[0].match(/:[-_a-z0-9]+/ig)){U=0;for(Y=v.length;U<Y;U++){var x=v[U].substring(1);typeof W[x]!='undefined'&&W[x]&&r++}r>y&&(y=r,l.urlIndex=L)}}return l},aa=!1;q.getRoute=function(l,W,r){var n=null,Z=!1,U=null;if(f)window.location.port||window.location.hostname!=window.gina.config.hostname.replace(/^(https|http|wss|ws):\/\//,
147
+ '').replace(/:\d+$/,'')||(Z=!0,window.gina.config.hostname=window.gina.config.hostname.replace(/^(https|http|wss|ws):\/\//,'').replace(/:\d+$/,'')),n=window.gina.config;else{n=getContext('gina').config;typeof getContext('argvFilename')!='undefined'&&(n.getRouting=getContext('gina').Config.instance.getRouting);var Y=process.gina&&process.gina._reqALS?process.gina._reqALS.getStore():null;Z=(U=Y&&Y.proxy?Y.proxy:null)?U.isProxyHost:getContext('isProxyHost')||!1}var v=n.env||GINA_ENV,L=null;Y=n.bundle;
148
148
  /@/.test(l)||typeof Y=='undefined'||Y==null||(l=l.toLowerCase(),l+='@'+Y);if(/@/.test(l)){var y=l.replace(/(.*):\/\//,'').split(/@/);Y=y[1];/\/(.*)$/.test(l)&&(L=l.replace(/(.*):\/\//,'').split(/\/(.*)$/)[1],Y=Y.replace(/\/(.*)$/,''),v=L||v);l=y[0].toLowerCase()+'@'+Y}L=n.getRouting(Y,v);if(!L)throw Error('[ RoutingHelper::getRoute(rule, params) ] : bundle `'+Y+'` has no routing table for rule `'+l+'` (client: routing config not loaded yet, or empty)');if(typeof L[l]=='undefined')throw Error('[ RoutingHelper::getRouting(rule, params) ] : `'+
149
- l+'` not found ! (bundle `'+Y+'` holds '+Object.keys(L).length+' rules)');Y=JSON.clone(L[l]);y=null;Y=A(Y,W);(Y.isProxyHost=Z)?(Y.proxy_hostname=f?window.location.protocol+'//'+document.location.hostname:T&&T.proxyHostname||process.gina.PROXY_HOSTNAME||n.envConf._proxyHostname,Y.proxy_hostname?Y.proxy_host=Y.proxy_hostname.replace(/^(https|http):\/\//,''):(delete Y.proxy_hostname,Y.isProxyHost=!1,aa||(aa=!0,console.warn('[ RoutingHelper::getRoute() ] Proxied context is active but no proxy hostname is resolvable (worker global and envConf fallback both unset) - falling back to the route direct hostname. Warned once per process.')))):
149
+ l+'` not found ! (bundle `'+Y+'` holds '+Object.keys(L).length+' rules)');Y=JSON.clone(L[l]);y=null;Y=A(Y,W);(Y.isProxyHost=Z)?(Y.proxy_hostname=f?window.location.protocol+'//'+document.location.hostname:U&&U.proxyHostname||process.gina.PROXY_HOSTNAME||n.envConf._proxyHostname,Y.proxy_hostname?Y.proxy_host=Y.proxy_hostname.replace(/^(https|http):\/\//,''):(delete Y.proxy_hostname,Y.isProxyHost=!1,aa||(aa=!0,console.warn('[ RoutingHelper::getRoute() ] Proxied context is active but no proxy hostname is resolvable (worker global and envConf fallback both unset) - falling back to the route direct hostname. Warned once per process.')))):
150
150
  !f&&typeof process.gina.PROXY_HOSTNAME!='undefined'&&process.gina.PROXY_HOSTNAME&&(Y.proxy_hostname=process.gina.PROXY_HOSTNAME,Y.proxy_host=Y.proxy_hostname.replace(/^(https|http):\/\//,''),console.debug('[getRoute#2]['+Z+'] process.gina.PROXY_HOSTNAME ('+process.gina.PROXY_HOSTNAME+') VS config.envConf._proxyHostname ('+n.envConf._proxyHostname+')'));/,/.test(Y.url)&&(typeof Y.urlIndex!='undefined'&&(r=Y.urlIndex,delete Y.urlIndex),r=typeof r!='undefined'?r:0,Y.url=Y.url.split(/,/g)[r]);/\/$/.test(Y.url)&&
151
- Y.url!='/'&&(Y.url=Y.url.substring(0,Y.url.length-1));if(/GET/i.test(Y.method)&&typeof W!='undefined'){r='?';n=L[l].url;Z=[];T=0;for(let x in Y.param)q.reservedParams.indexOf(x)>-1||(new RegExp(Y.param[x])).test(n)||typeof W[x]=='undefined'||(r+=x+'='+encodeRFC5987ValueChars(W[x])+'&',Z[T]=W[x],++T);for(let x in W)q.reservedParams.indexOf(x)>-1||Y.requirements&&typeof Y.requirements[x]!='undefined'||Z.indexOf(x)>-1||(r=typeof W[x]=='object'?r+(x+'='+encodeRFC5987ValueChars(JSON.stringify(W[x]))+'&'):
152
- r+(x+'='+W[x]+'&'));T=Z=n=null;r.length>1&&(r=r.substring(0,r.length-1),Y.url+=r);r=null}Y.toUrl=function(x){var R=null;if(this.isRedirect===!0||/^redirect$/i.test(this.param&&this.param.control))R=q.getUrlProps(this.bundle,v||GINA_ENV);var X=this.webroot||R.webroot;R=''+this.hostname||''+R.hostname;var g=''+this.url;this.isProxyHost&&(R=''+this.proxy_hostname);this.url=typeof x!='undefined'&&/^true$/i.test(x)?g.replace(new RegExp('^'+X),'/'):g.replace(new RegExp('^('+X+'|/$)'),X);return R+this.url};
153
- Y.request=function(x,R){var X=null,g=null;typeof arguments[arguments.length-1]=='function'&&(X=arguments[arguments.length-1]);typeof arguments[2]=='object'&&(g=arguments[2]);var V=this.webroot||g.webroot,fa=this.hostname||g.hostname,ua=typeof x!='undefined'&&x==1?path.replace(V,'/'):this.url||g.url;/^\//.test(ua)&&(ua=fa+ua);g=/^https/.test(fa)?'https':'http';if(f)window.open(ua,typeof R!='undefined'&&typeof R.target!='undefined'?R.target:'_self');else{typeof R.agent=='undefined'&&(R.agent=!1);g=
154
- require(''+g);var qa=!1,K=function(oa,Ja){qa||(qa=!0,X(oa,Ja))};V=function(oa){var Ja='',O=!1;oa.on('data',function(S){Ja+=S});oa.on('error',function(S){O='route.request: response stream failed for '+ua;S&&typeof S.stack!='undefined'?O+='\n'+S.stack:typeof S=='string'&&(O+='\n'+S);K(O)});oa.on('end',function(){if(/^\{/.test(Ja))try{Ja=JSON.parse(Ja),typeof Ja.error!='undefined'&&(O=JSON.clone(Ja),Ja=null)}catch(S){O=S}O?K(O):K(!1,Ja)})};var ha=null;if(X){if(ha=g.get(ua,R,V),ha.on('error',function(oa){K(oa)}),
155
- R&&typeof R.timeout!='undefined'&&R.timeout)ha.on('timeout',function(){var oa=Error('route.request: timed out after '+R.timeout+'ms requesting '+ua);oa.code='ETIMEDOUT';ha.destroy(oa)})}else ha=g.get(ua,R),ha.on('error',function(oa){console.warn('[ ROUTING ] route.request: fire-and-forget request to '+ua+' failed: '+(oa&&oa.message?oa.message:oa))})}};!/:/.test(Y.url)||/:d+\//.test(Y.url)||/:\/\//.test(Y.url)||(W=Y.url.match(/(:(.*)\/|:(.*)$)/g).map(function(x){return x.replace(/\//g,'')}).join(', '),
156
- y='[ RoutingHelper::getRoute(rule[, bundle, method]) ] : route [ %r ] param placeholder not defined: `'+Y.url+'` !\n Check your route description to compare requirements against param variables [ '+W+']',y=y.replace(/%r/,l),l=Error(y),console.warn(l),y=l=W=null);return Y};q.getRouteByUrl=async function(l,W,r,n,Z){arguments.length==2&&typeof arguments[1]!='undefined'&&arguments[1]&&q.allowedMethods.indexOf(arguments[1].toLowerCase())>-1&&(r=arguments[1],W=void 0);var T=null,Y=null,v=null,L=null,y=
157
- null,x=null;if(/#/.test(l)&&l.length>1){var R=l.split(/#/);l=R[0];y='#'+R[1];R=null}arguments.length==1&&typeof arguments[0]!='undefined'&&(/^(https|http)/i.test(l)||/^\//.test(l)||(l='/'+l),T='/'+l.split(/\//g)[1],f&&(L=gina.config.reverseRouting,v=gina.config.routing),typeof L[T]!='undefined'&&(R=v[L[T]],W=R.bundle,T=R.webroot,x=R.hostname,R=null));Z=typeof arguments[arguments.length-1]!='boolean'?!1:arguments[arguments.length-1];var X=!1,g=null,V=L=g=L=null;R=typeof r!='undefined'?!0:!1;f?(g=window.gina.config,
158
- W=typeof W!='undefined'?W:g.bundle,L=g.env,v=g.routing||g.getRouting(W),L=g.reverseRouting,isXMLRequest=typeof isXMLRequest!='undefined'?isXMLRequest:!1,x=x||g.hostname,T=T||g.webroot,n={routing:{},method:r,params:{},url:l},W&&(n.bundle=W)):(g=getContext('gina').config,W=typeof W!='undefined'?W:g.bundle,L=g.env,v=g.getRouting(W),x=g.envConf[W][L].hostname,T=g.envConf[W][L].server.webroot,n||={routing:{},isXMLRequest:!1,method:typeof r!='undefined'?r.toLowerCase():'get',params:{},url:l},Z&&(n.method=
159
- r),isXMLRequest=n.isXMLRequest||!1);g=l.replace(new RegExp('^('+x+'|'+x.replace(/:\d+/,'')+')'),'');typeof n.routing.path=='undefined'&&(n.routing.path=safeDecodeURI(g));r=typeof r!='undefined'?r.toLowerCase():'get';R&&(n.originalMethod=n.method,n.method=r,n.routing.path=safeDecodeURI(g));n.method||(n.method=r);L={};T=new RegExp(r,'i');x=null;for(fa in v){if(typeof v[fa].param=='undefined')break;if(v[fa].bundle==W&&(x=v[fa].method,/,/.test(x)&&T.test(x)&&(x=n.method),typeof v[fa].method=='undefined'||
160
- T.test(x))){L={method:x,requirements:v[fa].requirements,namespace:v[fa].namespace||void 0,url:safeDecodeURI(g),rule:v[fa].originalRule||fa,param:JSON.clone(v[fa].param),middleware:JSON.clone(v[fa].middleware),bundle:v[fa].bundle,isXMLRequest};try{if(V=await q.compareUrls(L,v[fa].url,n),g==v[fa].url||V.past){Y=JSON.clone(v[fa]);Y.name=fa;Y.param=L.param;X=!0;V={};break}}catch(ua){throw Error('Route [ '+fa+' ] needs your attention.\n'+ua.stack);}}}if(X)return/\/$/.test(l)&&l!='/'&&(l=l.substring(0,
161
- l.length-1)),y&&(l+=y),Y.url=l,Y.toUrl=function(ua){var qa=this.webroot,K=this.hostname,ha=this.url;this.url=typeof ua!='undefined'&&ua==1?ha.replace(qa,'/'):ha;return K+this.url},Y;if(f){var fa=!1;if(l=='#'&&/GET/i.test(r)&&R||/^404:/.test(l))l=location.pathname,fa=!0;typeof q.notFound=='undefined'&&(q.notFound={});y=null;Y='[ RoutingHelper::getRouteByUrl(rule[, bundle, method]) ] : route [ %r ] is called but not found inside your view: `'+l+'` !';if((y=(y=gina.hasPopinHandler&&gina.popinIsBinded?
162
- gina.popin.getActivePopin().target.innerHTML.match(/404:\[\w+\][a-z 0-9-_@]+/):document.body.innerHTML.match(/404:\[\w+\][a-z 0-9-_@]+/))&&y.length>0?y[0]:null)&&R&&fa)return fa=y.match(/\[\w+\]/)[0],y=y.replace('404:'+fa,fa.replace(/\[|\]/g,'')+'::'),Y=Y.replace(/%r/,y.replace(/404:\s+/,'')),typeof q.notFound[y]=='undefined'?(q.notFound[y]={count:1,message:Y},console.warn(Y)):R&&typeof q.notFound[y]!='undefined'&&++q.notFound[y].count,!1;if((fa=gina.config.reverseRouting[l]||null)&&typeof fa!='undefined'&&
163
- fa.split(/@(.+)$/)[1]==W)return y=fa,typeof q.notFound[y]=='undefined'?(Y=Y.replace(/%r/,r.toUpperCase()+'::'+fa),q.notFound[y]={count:1,message:Y},console.warn(Y)):R&&typeof q.notFound[y]!='undefined'&&++q.notFound[y].count,!1;y=await q.compareUrls(L,l,n)||null;y.past&&R&&(y=r.toUpperCase()+'::'+y.request.routing.rule,typeof q.notFound[y]=='undefined'?(Y=Y.replace(/%r/,y),q.notFound[y]={count:1,message:Y},console.warn(Y)):++q.notFound[y].count);return!1}console.warn(Error('[ RoutingHelper::getRouteByUrl(rule[, bundle, method, request]) ] : route not found for url: `'+
151
+ Y.url!='/'&&(Y.url=Y.url.substring(0,Y.url.length-1));if(/GET/i.test(Y.method)&&typeof W!='undefined'){r='?';n=L[l].url;Z=[];U=0;for(let x in Y.param)q.reservedParams.indexOf(x)>-1||(new RegExp(Y.param[x])).test(n)||typeof W[x]=='undefined'||(r+=x+'='+encodeRFC5987ValueChars(W[x])+'&',Z[U]=W[x],++U);for(let x in W)q.reservedParams.indexOf(x)>-1||Y.requirements&&typeof Y.requirements[x]!='undefined'||Z.indexOf(x)>-1||(r=typeof W[x]=='object'?r+(x+'='+encodeRFC5987ValueChars(JSON.stringify(W[x]))+'&'):
152
+ r+(x+'='+W[x]+'&'));U=Z=n=null;r.length>1&&(r=r.substring(0,r.length-1),Y.url+=r);r=null}Y.toUrl=function(x){var S=null;if(this.isRedirect===!0||/^redirect$/i.test(this.param&&this.param.control))S=q.getUrlProps(this.bundle,v||GINA_ENV);var X=this.webroot||S.webroot;S=''+this.hostname||''+S.hostname;var g=''+this.url;this.isProxyHost&&(S=''+this.proxy_hostname);this.url=typeof x!='undefined'&&/^true$/i.test(x)?g.replace(new RegExp('^'+X),'/'):g.replace(new RegExp('^('+X+'|/$)'),X);return S+this.url};
153
+ Y.request=function(x,S){var X=null,g=null;typeof arguments[arguments.length-1]=='function'&&(X=arguments[arguments.length-1]);typeof arguments[2]=='object'&&(g=arguments[2]);var Q=this.webroot||g.webroot,ka=this.hostname||g.hostname,ua=typeof x!='undefined'&&x==1?path.replace(Q,'/'):this.url||g.url;/^\//.test(ua)&&(ua=ka+ua);g=/^https/.test(ka)?'https':'http';if(f)window.open(ua,typeof S!='undefined'&&typeof S.target!='undefined'?S.target:'_self');else{typeof S.agent=='undefined'&&(S.agent=!1);g=
154
+ require(''+g);var pa=!1,K=function(na,Ia){pa||(pa=!0,X(na,Ia))};Q=function(na){var Ia='',O=!1;na.on('data',function(T){Ia+=T});na.on('error',function(T){O='route.request: response stream failed for '+ua;T&&typeof T.stack!='undefined'?O+='\n'+T.stack:typeof T=='string'&&(O+='\n'+T);K(O)});na.on('end',function(){if(/^\{/.test(Ia))try{Ia=JSON.parse(Ia),typeof Ia.error!='undefined'&&(O=JSON.clone(Ia),Ia=null)}catch(T){O=T}O?K(O):K(!1,Ia)})};var fa=null;if(X){if(fa=g.get(ua,S,Q),fa.on('error',function(na){K(na)}),
155
+ S&&typeof S.timeout!='undefined'&&S.timeout)fa.on('timeout',function(){var na=Error('route.request: timed out after '+S.timeout+'ms requesting '+ua);na.code='ETIMEDOUT';fa.destroy(na)})}else fa=g.get(ua,S),fa.on('error',function(na){console.warn('[ ROUTING ] route.request: fire-and-forget request to '+ua+' failed: '+(na&&na.message?na.message:na))})}};!/:/.test(Y.url)||/:d+\//.test(Y.url)||/:\/\//.test(Y.url)||(W=Y.url.match(/(:(.*)\/|:(.*)$)/g).map(function(x){return x.replace(/\//g,'')}).join(', '),
156
+ y='[ RoutingHelper::getRoute(rule[, bundle, method]) ] : route [ %r ] param placeholder not defined: `'+Y.url+'` !\n Check your route description to compare requirements against param variables [ '+W+']',y=y.replace(/%r/,l),l=Error(y),console.warn(l),y=l=W=null);return Y};q.getRouteByUrl=async function(l,W,r,n,Z){arguments.length==2&&typeof arguments[1]!='undefined'&&arguments[1]&&q.allowedMethods.indexOf(arguments[1].toLowerCase())>-1&&(r=arguments[1],W=void 0);var U=null,Y=null,v=null,L=null,y=
157
+ null,x=null;if(/#/.test(l)&&l.length>1){var S=l.split(/#/);l=S[0];y='#'+S[1];S=null}arguments.length==1&&typeof arguments[0]!='undefined'&&(/^(https|http)/i.test(l)||/^\//.test(l)||(l='/'+l),U='/'+l.split(/\//g)[1],f&&(L=gina.config.reverseRouting,v=gina.config.routing),typeof L[U]!='undefined'&&(S=v[L[U]],W=S.bundle,U=S.webroot,x=S.hostname,S=null));Z=typeof arguments[arguments.length-1]!='boolean'?!1:arguments[arguments.length-1];var X=!1,g=null,Q=L=g=L=null;S=typeof r!='undefined'?!0:!1;f?(g=window.gina.config,
158
+ W=typeof W!='undefined'?W:g.bundle,L=g.env,v=g.routing||g.getRouting(W),L=g.reverseRouting,isXMLRequest=typeof isXMLRequest!='undefined'?isXMLRequest:!1,x=x||g.hostname,U=U||g.webroot,n={routing:{},method:r,params:{},url:l},W&&(n.bundle=W)):(g=getContext('gina').config,W=typeof W!='undefined'?W:g.bundle,L=g.env,v=g.getRouting(W),x=g.envConf[W][L].hostname,U=g.envConf[W][L].server.webroot,n||={routing:{},isXMLRequest:!1,method:typeof r!='undefined'?r.toLowerCase():'get',params:{},url:l},Z&&(n.method=
159
+ r),isXMLRequest=n.isXMLRequest||!1);g=l.replace(new RegExp('^('+x+'|'+x.replace(/:\d+/,'')+')'),'');typeof n.routing.path=='undefined'&&(n.routing.path=safeDecodeURI(g));r=typeof r!='undefined'?r.toLowerCase():'get';S&&(n.originalMethod=n.method,n.method=r,n.routing.path=safeDecodeURI(g));n.method||(n.method=r);L={};U=new RegExp(r,'i');x=null;for(ka in v){if(typeof v[ka].param=='undefined')break;if(v[ka].bundle==W&&(x=v[ka].method,/,/.test(x)&&U.test(x)&&(x=n.method),typeof v[ka].method=='undefined'||
160
+ U.test(x))){L={method:x,requirements:v[ka].requirements,namespace:v[ka].namespace||void 0,url:safeDecodeURI(g),rule:v[ka].originalRule||ka,param:JSON.clone(v[ka].param),middleware:JSON.clone(v[ka].middleware),bundle:v[ka].bundle,isXMLRequest};try{if(Q=await q.compareUrls(L,v[ka].url,n),g==v[ka].url||Q.past){Y=JSON.clone(v[ka]);Y.name=ka;Y.param=L.param;X=!0;Q={};break}}catch(ua){throw Error('Route [ '+ka+' ] needs your attention.\n'+ua.stack);}}}if(X)return/\/$/.test(l)&&l!='/'&&(l=l.substring(0,
161
+ l.length-1)),y&&(l+=y),Y.url=l,Y.toUrl=function(ua){var pa=this.webroot,K=this.hostname,fa=this.url;this.url=typeof ua!='undefined'&&ua==1?fa.replace(pa,'/'):fa;return K+this.url},Y;if(f){var ka=!1;if(l=='#'&&/GET/i.test(r)&&S||/^404:/.test(l))l=location.pathname,ka=!0;typeof q.notFound=='undefined'&&(q.notFound={});y=null;Y='[ RoutingHelper::getRouteByUrl(rule[, bundle, method]) ] : route [ %r ] is called but not found inside your view: `'+l+'` !';if((y=(y=gina.hasPopinHandler&&gina.popinIsBinded?
162
+ gina.popin.getActivePopin().target.innerHTML.match(/404:\[\w+\][a-z 0-9-_@]+/):document.body.innerHTML.match(/404:\[\w+\][a-z 0-9-_@]+/))&&y.length>0?y[0]:null)&&S&&ka)return ka=y.match(/\[\w+\]/)[0],y=y.replace('404:'+ka,ka.replace(/\[|\]/g,'')+'::'),Y=Y.replace(/%r/,y.replace(/404:\s+/,'')),typeof q.notFound[y]=='undefined'?(q.notFound[y]={count:1,message:Y},console.warn(Y)):S&&typeof q.notFound[y]!='undefined'&&++q.notFound[y].count,!1;if((ka=gina.config.reverseRouting[l]||null)&&typeof ka!='undefined'&&
163
+ ka.split(/@(.+)$/)[1]==W)return y=ka,typeof q.notFound[y]=='undefined'?(Y=Y.replace(/%r/,r.toUpperCase()+'::'+ka),q.notFound[y]={count:1,message:Y},console.warn(Y)):S&&typeof q.notFound[y]!='undefined'&&++q.notFound[y].count,!1;y=await q.compareUrls(L,l,n)||null;y.past&&S&&(y=r.toUpperCase()+'::'+y.request.routing.rule,typeof q.notFound[y]=='undefined'?(Y=Y.replace(/%r/,y),q.notFound[y]={count:1,message:Y},console.warn(Y)):++q.notFound[y].count);return!1}console.warn(Error('[ RoutingHelper::getRouteByUrl(rule[, bundle, method, request]) ] : route not found for url: `'+
164
164
  l+'` !').stack);return!1};return q}typeof module!=='undefined'&&module.exports?(typeof console.err=='undefined'&&(console=require('../../logger')),module.exports=Routing()):typeof define==='function'&&define.amd&&define('lib/routing',['require','lib/form-validator','lib/merge'],function(){return Routing()});
165
- var Money=function(){var f={},q={BIF:0,CLP:0,DJF:0,GNF:0,ISK:0,JPY:0,KMF:0,KRW:0,PYG:0,RWF:0,UGX:0,UYI:0,VND:0,VUV:0,XAF:0,XOF:0,XPF:0,BHD:3,IQD:3,JOD:3,KWD:3,LYD:3,OMR:3,TND:3,CLF:4,UYW:4},F=/^(-?)(\d+)(?:\.(\d+))?$/,H=/^[A-Za-z]{3}$/,N=function(m){if(typeof m!='string'||!H.test(m))throw new TypeError('[ money ] invalid currency code: expected a 3-letter ISO 4217 code, got `'+m+'`');return m.toUpperCase()},U=function(m){if(!m||typeof m!='object'||typeof m.minor!='bigint'||typeof m.currency!='string')throw new TypeError('[ money ] not a money amount: expected the { currency, exponent, minor } shape from parse()/fromMinor()');
166
- return m},D=function(m,E){U(m);U(E);if(m.currency!==E.currency)throw new TypeError('[ money ] currency mismatch: `'+m.currency+'` vs `'+E.currency+'` \u2014 convert explicitly before operating');};f.exponent=function(m){m=N(m);return typeof q[m]!='undefined'?q[m]:2};f.parse=function(m,E){E=N(E);if(typeof m!='string')throw new TypeError('[ money ] parse() takes the WIRE STRING, not a number \u2014 a float has already lost exactness (`'+m+'`)');var A=F.exec(m.trim());if(!A)throw new TypeError('[ money ] malformed amount `'+
167
- m+'`: expected digits with an optional sign and `.` fraction');var aa=f.exponent(E),l=A[3]||'';if(l.length>aa)throw new TypeError('[ money ] `'+m+'` carries '+l.length+' fractional digit(s) but '+E+' has '+aa+" \u2014 rounding is the application's decision, apply it before parse()");for(;l.length<aa;)l+='0';m=BigInt(A[2]+l);A[1]==='-'&&(m=-m);return{currency:E,exponent:aa,minor:m}};f.fromMinor=function(m,E){E=N(E);if(typeof m!='bigint')if(typeof m=='number'){if(!isFinite(m)||Math.floor(m)!==m)throw new TypeError('[ money ] fromMinor() takes an INTEGER minor-unit count, got `'+
168
- m+'`');m=BigInt(m)}else if(typeof m=='string'&&/^-?\d+$/.test(m.trim()))m=BigInt(m.trim());else throw new TypeError('[ money ] fromMinor() takes an integer as bigint, number or string, got `'+m+'`');return{currency:E,exponent:f.exponent(E),minor:m}};f.add=function(m,E){D(m,E);return{currency:m.currency,exponent:m.exponent,minor:m.minor+E.minor}};f.subtract=function(m,E){D(m,E);return{currency:m.currency,exponent:m.exponent,minor:m.minor-E.minor}};f.multiply=function(m,E){U(m);if(typeof E!='bigint')if(typeof E==
169
- 'number'&&isFinite(E)&&Math.floor(E)===E)E=BigInt(E);else if(typeof E=='string'&&/^-?\d+$/.test(E.trim()))E=BigInt(E.trim());else throw new TypeError('[ money ] multiply() takes an INTEGER factor, got `'+E+"` \u2014 a fractional rate needs the application's own rounding, on minor units");return{currency:m.currency,exponent:m.exponent,minor:m.minor*E}};f.compare=function(m,E){D(m,E);return m.minor<E.minor?-1:m.minor>E.minor?1:0};f.format=function(m){U(m);var E=m.minor<BigInt(0),A=(E?-m.minor:m.minor).toString();
170
- if(m.exponent===0)return(E?'-':'')+A;for(;A.length<=m.exponent;)A='0'+A;m=A.length-m.exponent;return(E?'-':'')+A.substring(0,m)+'.'+A.substring(m)};f.toMinor=function(m){U(m);return m.minor.toString()};return f}();typeof module!=='undefined'&&module.exports?module.exports=Money:typeof define==='function'&&define.amd&&define('lib/money',[],function(){return Money});
165
+ var Money=function(){var f={},q={BIF:0,CLP:0,DJF:0,GNF:0,ISK:0,JPY:0,KMF:0,KRW:0,PYG:0,RWF:0,UGX:0,UYI:0,VND:0,VUV:0,XAF:0,XOF:0,XPF:0,BHD:3,IQD:3,JOD:3,KWD:3,LYD:3,OMR:3,TND:3,CLF:4,UYW:4},F=/^(-?)(\d+)(?:\.(\d+))?$/,H=/^[A-Za-z]{3}$/,M=function(m){if(typeof m!='string'||!H.test(m))throw new TypeError('[ money ] invalid currency code: expected a 3-letter ISO 4217 code, got `'+m+'`');return m.toUpperCase()},V=function(m){if(!m||typeof m!='object'||typeof m.minor!='bigint'||typeof m.currency!='string')throw new TypeError('[ money ] not a money amount: expected the { currency, exponent, minor } shape from parse()/fromMinor()');
166
+ return m},D=function(m,E){V(m);V(E);if(m.currency!==E.currency)throw new TypeError('[ money ] currency mismatch: `'+m.currency+'` vs `'+E.currency+'` \u2014 convert explicitly before operating');};f.exponent=function(m){m=M(m);return typeof q[m]!='undefined'?q[m]:2};f.parse=function(m,E){E=M(E);if(typeof m!='string')throw new TypeError('[ money ] parse() takes the WIRE STRING, not a number \u2014 a float has already lost exactness (`'+m+'`)');var A=F.exec(m.trim());if(!A)throw new TypeError('[ money ] malformed amount `'+
167
+ m+'`: expected digits with an optional sign and `.` fraction');var aa=f.exponent(E),l=A[3]||'';if(l.length>aa)throw new TypeError('[ money ] `'+m+'` carries '+l.length+' fractional digit(s) but '+E+' has '+aa+" \u2014 rounding is the application's decision, apply it before parse()");for(;l.length<aa;)l+='0';m=BigInt(A[2]+l);A[1]==='-'&&(m=-m);return{currency:E,exponent:aa,minor:m}};f.fromMinor=function(m,E){E=M(E);if(typeof m!='bigint')if(typeof m=='number'){if(!isFinite(m)||Math.floor(m)!==m)throw new TypeError('[ money ] fromMinor() takes an INTEGER minor-unit count, got `'+
168
+ m+'`');m=BigInt(m)}else if(typeof m=='string'&&/^-?\d+$/.test(m.trim()))m=BigInt(m.trim());else throw new TypeError('[ money ] fromMinor() takes an integer as bigint, number or string, got `'+m+'`');return{currency:E,exponent:f.exponent(E),minor:m}};f.add=function(m,E){D(m,E);return{currency:m.currency,exponent:m.exponent,minor:m.minor+E.minor}};f.subtract=function(m,E){D(m,E);return{currency:m.currency,exponent:m.exponent,minor:m.minor-E.minor}};f.multiply=function(m,E){V(m);if(typeof E!='bigint')if(typeof E==
169
+ 'number'&&isFinite(E)&&Math.floor(E)===E)E=BigInt(E);else if(typeof E=='string'&&/^-?\d+$/.test(E.trim()))E=BigInt(E.trim());else throw new TypeError('[ money ] multiply() takes an INTEGER factor, got `'+E+"` \u2014 a fractional rate needs the application's own rounding, on minor units");return{currency:m.currency,exponent:m.exponent,minor:m.minor*E}};f.compare=function(m,E){D(m,E);return m.minor<E.minor?-1:m.minor>E.minor?1:0};f.format=function(m){V(m);var E=m.minor<BigInt(0),A=(E?-m.minor:m.minor).toString();
170
+ if(m.exponent===0)return(E?'-':'')+A;for(;A.length<=m.exponent;)A='0'+A;m=A.length-m.exponent;return(E?'-':'')+A.substring(0,m)+'.'+A.substring(m)};f.toMinor=function(m){V(m);return m.minor.toString()};return f}();typeof module!=='undefined'&&module.exports?module.exports=Money:typeof define==='function'&&define.amd&&define('lib/money',[],function(){return Money});
171
171
  function registerEvents(f,q){typeof gina=='undefined'&&typeof window.gina!='undefined'&&(gina=window.gina);gina.registeredEvents[f]=q}function mergeEventProps(f,q){for(let F in q)typeof f[F]=='undefined'&&(f[F]=q[F]);return f}
172
- function addListener(f,q,F,H){var N=function(m,E,A,aa){typeof m.event!='undefined'&&m.event.isTouchSupported&&/^(click|mouseout|mouseover)/.test(A)&&m.event[A].indexOf(E)==-1&&(m.event[A][m.event[A].length]=E);typeof E!='undefined'&&E!=null?E.addEventListener?E.addEventListener(A,aa,!1):E.attachEvent&&E.attachEvent('on'+A,aa):m.customEvent.addListener(A,aa);gina.events[A]=typeof E.id!='undefined'&&typeof E.id!='object'?E.id:E.getAttribute('id')},U=0,D=null;if(Array.isArray(F))for(D=F.length;U<D;U++)N(f,
173
- q,F[U],H);else if(Array.isArray(q))for(U=0,D=q.length;U<D;U++){let m=/\.$/.test(F)?F+q[U].id:F;N(f,q[U],m,H)}else F=/\.$/.test(F)?F+q.id:F,N(f,q,F,H)}
174
- function triggerEvent(f,q,F,H,N){if(typeof q!='undefined'&&q!=null){var U=!1;if(window.CustomEvent||document.createEvent)return window.CustomEvent?f=new CustomEvent(F,{detail:H,bubbles:!0,cancelable:!0,target:q}):(f=document.createEvent('HTMLEvents'),f.detail=H,f.target=q,f.initEvent(F,!0,!0),f.eventName=F),N&&(f=mergeEventProps(f,N)),typeof f.defaultPrevented!='undefined'&&f.defaultPrevented&&(U=f.defaultPrevented),U||q.dispatchEvent(f),f;if(document.createEventObject)return f=document.createEventObject(),
175
- f.srcElement.id=q.id,f.detail=H,f.target=q,N&&(f=mergeEventProps(f,N)),q.fireEvent('on'+F,f),f}else f.customEvent.fire(F,H)}function cancelEvent(f){typeof f!='undefined'&&f!=null&&(f.cancelBubble=!0,f.preventDefault&&f.preventDefault(),f.stopPropagation&&f.stopPropagation(),f.returnValue=!1)}
176
- function setupXhr(f){var q=null;if(window.XMLHttpRequest)q=new XMLHttpRequest;else if(window.ActiveXObject)try{q=new ActiveXObject('Msxml2.XMLHTTP')}catch(H){try{q=new ActiveXObject('Microsoft.XMLHTTP')}catch(N){}}if(typeof f!='undefined'){if(!f.url||typeof f.url=='undefined')throw Error('Missing `options.url`');typeof f.method=='undefined'&&(f.method='GET');f.method=f.method.toUpperCase();if(f.withCredentials){if('withCredentials'in q)f.isSynchrone?q.open(f.method,f.url,f.isSynchrone):q.open(f.method,
172
+ function addListener(f,q,F,H){var M=function(m,E,A,aa){typeof m.event!='undefined'&&m.event.isTouchSupported&&/^(click|mouseout|mouseover)/.test(A)&&m.event[A].indexOf(E)==-1&&(m.event[A][m.event[A].length]=E);typeof E!='undefined'&&E!=null?E.addEventListener?E.addEventListener(A,aa,!1):E.attachEvent&&E.attachEvent('on'+A,aa):m.customEvent.addListener(A,aa);gina.events[A]=typeof E.id!='undefined'&&typeof E.id!='object'?E.id:E.getAttribute('id')},V=0,D=null;if(Array.isArray(F))for(D=F.length;V<D;V++)M(f,
173
+ q,F[V],H);else if(Array.isArray(q))for(V=0,D=q.length;V<D;V++){let m=/\.$/.test(F)?F+q[V].id:F;M(f,q[V],m,H)}else F=/\.$/.test(F)?F+q.id:F,M(f,q,F,H)}
174
+ function triggerEvent(f,q,F,H,M){if(typeof q!='undefined'&&q!=null){var V=!1;if(window.CustomEvent||document.createEvent)return window.CustomEvent?f=new CustomEvent(F,{detail:H,bubbles:!0,cancelable:!0,target:q}):(f=document.createEvent('HTMLEvents'),f.detail=H,f.target=q,f.initEvent(F,!0,!0),f.eventName=F),M&&(f=mergeEventProps(f,M)),typeof f.defaultPrevented!='undefined'&&f.defaultPrevented&&(V=f.defaultPrevented),V||q.dispatchEvent(f),f;if(document.createEventObject)return f=document.createEventObject(),
175
+ f.srcElement.id=q.id,f.detail=H,f.target=q,M&&(f=mergeEventProps(f,M)),q.fireEvent('on'+F,f),f}else f.customEvent.fire(F,H)}function cancelEvent(f){typeof f!='undefined'&&f!=null&&(f.cancelBubble=!0,f.preventDefault&&f.preventDefault(),f.stopPropagation&&f.stopPropagation(),f.returnValue=!1)}
176
+ function setupXhr(f){var q=null;if(window.XMLHttpRequest)q=new XMLHttpRequest;else if(window.ActiveXObject)try{q=new ActiveXObject('Msxml2.XMLHTTP')}catch(H){try{q=new ActiveXObject('Microsoft.XMLHTTP')}catch(M){}}if(typeof f!='undefined'){if(!f.url||typeof f.url=='undefined')throw Error('Missing `options.url`');typeof f.method=='undefined'&&(f.method='GET');f.method=f.method.toUpperCase();if(f.withCredentials){if('withCredentials'in q)f.isSynchrone?q.open(f.method,f.url,f.isSynchrone):q.open(f.method,
177
177
  f.url);else if(typeof XDomainRequest!='undefined')q=new XDomainRequest,q.open(f.method,f.url);else{result='CORS not supported: the server is missing the header `"Access-Control-Allow-Credentials": true` ';triggerEvent(gina,$target,'error.'+id,result);return}q.responseType=typeof f.responseType!='undefined'?f.responseType:'';q.withCredentials=!0}else f.isSynchrone?q.open(f.method,f.url,f.isSynchrone):q.open(f.method,f.url);for(var F in f.headers)F=='Content-Type'&&typeof enctype!='undefined'&&enctype!=
178
178
  null&&enctype!=''||q.setRequestHeader(F,f.headers[F])}return q}function getFilenameFromContentDisposition(f){return f?(f=f.match(/filename\s*=\s*(?:"((?:[^"\\]|\\.)*)"|([^;]+))/i))?typeof f[1]!='undefined'?f[1].replace(/\\(.)/g,'$1'):f[2].replace(/^\s+|\s+$/g,''):'':''}
179
- function handleXhr(f,q,F,H){if(!f)throw Error('No `xhr` object initiated');var N=null,U=null,D=null,m=null,E=null,A=F.$link||null,aa=F.$form||null,l=null;delete F.$link;delete F.$form;aa||A?A?(A.target=document.getElementById(A.id),l=gina.link.target,E=gina.link.id):(l=aa.target,E=l.getAttribute('id')):(l=q,E=l.getAttribute('id'));var W=A&&q.getAttribute('data-gina-link-event-on-success')||A&&q.getAttribute('data-gina-link-event-on-error')?!0:!1,r=aa&&l.getAttribute('data-gina-form-event-on-submit-success')||
180
- aa&&l.getAttribute('data-gina-form-event-on-submit-error')?!0:!1;r&&aa&&listenToXhrEvents(aa,'form');var n=q.getAttribute('enctype')||F.headers['Content-Type'],Z;for(Z in F.headers)Z=='Content-Type'&&typeof n!='undefined'&&n!=null&&n!=''||f.setRequestHeader(Z,F.headers[Z]);f.withCredentials=typeof F.withCredentials!='undefined'?F.withCredentials:!1;f.onerror=function(T,Y){T={status:f.status||500,error:'Transaction error: might be due to the server CORS settings.\nPlease, check the console for more details.'};
181
- aa&&(aa.eventData.error=T);A&&(A.eventData.error=T);typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&window.ginaToolbar.update('data-xhr',T,!0);triggerEvent(gina,l,'error.'+E,T);r&&triggerEvent(gina,l,'error.'+E+'.hform',T);W&&triggerEvent(gina,A.target,'error.'+A.id+'.hlink',T)};f.onreadystatechange=function(T){typeof merge=='undefined'&&(merge=H('lib/merge'));T=/Google Inc/i.test(navigator.vendor)?50:0;f.readyState==2&&(U=/^attachment;/.test(f.getResponseHeader('Content-Disposition'))?
182
- !0:!1,!f.responseType&&U&&(f.responseType='blob'));if(f.readyState==4)if(N=null,D=f.getResponseHeader('Content-Type'),/^2/.test(f.status)){try{if(/blob/.test(f.responseType)||U){if(typeof D=='undefined'||D==null)D='application/octet-stream';N=new Blob([this.response],{type:D});var Y=document.createElement('a');Y.style='display: none';document.body.appendChild(Y);var v=window.URL.createObjectURL(N);Y.href=v;var L=f.getResponseHeader('Content-Disposition');Y.download=getFilenameFromContentDisposition(L);
183
- Y.click();window.URL.revokeObjectURL(v);m={status:f.status,statusText:f.statusText,responseType:N.type,type:N.type,size:N.size}}!m&&/\/json/.test(D)&&(m=JSON.parse(f.responseText),typeof m.status=='undefined'&&(m.status=f.status||200));if(!m&&/\/html/.test(D)&&(m={contentType:D,content:f.responseText},typeof m.status=='undefined'&&(m.status=f.status),typeof gina.popin!='undefined'&&gina.hasPopinHandler)){var y=typeof gina.popin.getPopinContaining=='function'?gina.popin.getPopinContaining(q):null;
184
- y&&!y.isOpen&&(y=null);if(y){var x=parseXhrHtmlAnswer(m.content);XHRData=x.data;XHRView=x.view;try{gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&XHRData&&window.ginaToolbar.update('data-xhr',XHRData),gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&XHRView&&window.ginaToolbar.update('view-xhr',XHRView)}catch(V){throw V;}y.loadContent(m.content);m=XHRData||{status:f.status};triggerEvent(gina,l,'success.'+E,m);W&&triggerEvent(gina,A.target,'success.'+A.id+'.hlink',
185
- m);return}}m||(m=f.responseText);aa&&(aa.eventData.success=m);XHRData=m;if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&XHRData)try{typeof XHRData!='undefined'&&/\/html/.test(D)&&window.ginaToolbar.update('data-xhr',XHRData)}catch(V){throw V;}triggerEvent(gina,l,'success.'+E,m);r&&triggerEvent(gina,l,'success.'+E+'.hform',m);W&&triggerEvent(gina,A.target,'success.'+A.id+'.hlink',m)}catch(V){m={status:422,error:V.message,stack:V.stack};aa&&(aa.eventData.error=m);XHRData=m;if(gina&&
186
- typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&XHRData)try{typeof XHRData!='undefined'&&window.ginaToolbar.update('data-xhr',XHRData)}catch(fa){throw fa;}triggerEvent(gina,l,'error.'+E,m);r&&triggerEvent(gina,l,'error.'+E+'.hform',m);W&&triggerEvent(gina,A.target,'error.'+A.id+'.hlink',m)}if(typeof m!='undefined'&&typeof m.location!='undefined')return window.location.hash='',m.location=/^http/.test(m.location)||/^\//.test(m.location)?m.location:location.protocol+'//'+m.location,setTimeout(()=>
187
- {window.location.href=m.location},T)}else if(f.status!=0)if(m={status:f.status,message:''},/blob/.test(f.responseType)){N=new Blob([this.response],{type:'text/plain'});var R=new FileReader,X='';R.addEventListener('loadend',V=>{typeof merge=='undefined'&&(merge=H('lib/merge'));/string/i.test(typeof V.srcElement.result)?X+=V.srcElement.result:typeof V.srcElement.result=='object'?m=merge(m,V.srcElement.result):m.message+=V.srcElement.result;if(/^2/.test(R.readyState)){if(/^(\{|\[)/.test(X))try{m=merge(m,
188
- JSON.parse(X))}catch(qa){m=merge(m,qa)}m.message||delete m.message;aa&&(aa.eventData.error=m);if(typeof m!='undefined'&&typeof m.error!='undefined'&&m.error.fields&&typeof m.error.fields=='object'){V={};var fa=0,ua;for(ua in m.error.fields)++fa,V[ua]={isApplicationValidationError:m.error.fields[ua]};fa>0&&handleErrorsDisplay(aa.target,V)}XHRData=m;if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&XHRData)try{window.ginaToolbar.update('data-xhr',XHRData)}catch(qa){throw qa;}triggerEvent(gina,
189
- l,'error.'+E,m);r&&triggerEvent(gina,l,'error.'+E+'.hform',m);W&&triggerEvent(gina,A.target,'error.'+A.id+'.hlink',m)}});R.readAsText(N)}else{if(/^(\{|\[)/.test(f.responseText))try{m=merge(m,JSON.parse(f.responseText))}catch(V){m=merge(m,V)}else typeof f.responseText=='object'?m=merge(m,f.responseText):m.message=f.responseText;aa&&(aa.eventData.error=m);if(typeof m!='undefined'&&typeof m.error!='undefined'&&m.error.fields&&typeof m.error.fields=='object'){Y={};v=0;for(var g in m.error.fields)++v,
190
- Y[g]={isApplicationValidationError:m.error.fields[g]};v>0&&handleErrorsDisplay(aa.target,Y)}XHRData=m;if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&XHRData)try{window.ginaToolbar.update('data-xhr',XHRData)}catch(V){throw V;}triggerEvent(gina,l,'error.'+E,m);r&&triggerEvent(gina,l,'error.'+E+'.hform',m);W&&triggerEvent(gina,A.target,'error.'+A.id+'.hlink',m)}};f.onprogress=function(T){var Y='0';T.lengthComputable&&(Y=T.loaded/T.total,Y=parseInt(Y*100));T={status:100,progress:Y};
191
- aa&&(aa.eventData.onprogress=T);triggerEvent(gina,l,'progress.'+E,T)};f.ontimeout=function(T){m={status:408,error:'Request Timeout'};aa&&(aa.eventData.ontimeout=m);triggerEvent(gina,l,'error.'+E,m);r&&triggerEvent(gina,l,'error.'+E+'.hform',m);W&&triggerEvent(gina,A.target,'error.'+A.id+'.hlink',m)}}
179
+ function handleXhr(f,q,F,H){if(!f)throw Error('No `xhr` object initiated');var M=null,V=null,D=null,m=null,E=null,A=F.$link||null,aa=F.$form||null,l=null;delete F.$link;delete F.$form;aa||A?A?(A.target=document.getElementById(A.id),l=gina.link.target,E=gina.link.id):(l=aa.target,E=l.getAttribute('id')):(l=q,E=l.getAttribute('id'));var W=A&&q.getAttribute('data-gina-link-event-on-success')||A&&q.getAttribute('data-gina-link-event-on-error')?!0:!1,r=aa&&l.getAttribute('data-gina-form-event-on-submit-success')||
180
+ aa&&l.getAttribute('data-gina-form-event-on-submit-error')?!0:!1;r&&aa&&listenToXhrEvents(aa,'form');var n=q.getAttribute('enctype')||F.headers['Content-Type'],Z;for(Z in F.headers)Z=='Content-Type'&&typeof n!='undefined'&&n!=null&&n!=''||f.setRequestHeader(Z,F.headers[Z]);f.withCredentials=typeof F.withCredentials!='undefined'?F.withCredentials:!1;f.onerror=function(U,Y){U={status:f.status||500,error:'Transaction error: might be due to the server CORS settings.\nPlease, check the console for more details.'};
181
+ aa&&(aa.eventData.error=U);A&&(A.eventData.error=U);typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&window.ginaToolbar.update('data-xhr',U,!0);triggerEvent(gina,l,'error.'+E,U);r&&triggerEvent(gina,l,'error.'+E+'.hform',U);W&&triggerEvent(gina,A.target,'error.'+A.id+'.hlink',U)};f.onreadystatechange=function(U){typeof merge=='undefined'&&(merge=H('lib/merge'));U=/Google Inc/i.test(navigator.vendor)?50:0;f.readyState==2&&(V=/^attachment;/.test(f.getResponseHeader('Content-Disposition'))?
182
+ !0:!1,!f.responseType&&V&&(f.responseType='blob'));if(f.readyState==4)if(M=null,D=f.getResponseHeader('Content-Type'),/^2/.test(f.status)){try{if(/blob/.test(f.responseType)||V){if(typeof D=='undefined'||D==null)D='application/octet-stream';M=new Blob([this.response],{type:D});var Y=document.createElement('a');Y.style='display: none';document.body.appendChild(Y);var v=window.URL.createObjectURL(M);Y.href=v;var L=f.getResponseHeader('Content-Disposition');Y.download=getFilenameFromContentDisposition(L);
183
+ Y.click();window.URL.revokeObjectURL(v);m={status:f.status,statusText:f.statusText,responseType:M.type,type:M.type,size:M.size}}!m&&/\/json/.test(D)&&(m=JSON.parse(f.responseText),typeof m.status=='undefined'&&(m.status=f.status||200));if(!m&&/\/html/.test(D)&&(m={contentType:D,content:f.responseText},typeof m.status=='undefined'&&(m.status=f.status),typeof gina.popin!='undefined'&&gina.hasPopinHandler)){var y=typeof gina.popin.getPopinContaining=='function'?gina.popin.getPopinContaining(q):null;
184
+ y&&!y.isOpen&&(y=null);if(y){var x=parseXhrHtmlAnswer(m.content);XHRData=x.data;XHRView=x.view;try{gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&XHRData&&window.ginaToolbar.update('data-xhr',XHRData),gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&XHRView&&window.ginaToolbar.update('view-xhr',XHRView)}catch(Q){throw Q;}y.loadContent(m.content);m=XHRData||{status:f.status};triggerEvent(gina,l,'success.'+E,m);W&&triggerEvent(gina,A.target,'success.'+A.id+'.hlink',
185
+ m);return}}m||(m=f.responseText);aa&&(aa.eventData.success=m);XHRData=m;if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&XHRData)try{typeof XHRData!='undefined'&&/\/html/.test(D)&&window.ginaToolbar.update('data-xhr',XHRData)}catch(Q){throw Q;}triggerEvent(gina,l,'success.'+E,m);r&&triggerEvent(gina,l,'success.'+E+'.hform',m);W&&triggerEvent(gina,A.target,'success.'+A.id+'.hlink',m)}catch(Q){m={status:422,error:Q.message,stack:Q.stack};aa&&(aa.eventData.error=m);XHRData=m;if(gina&&
186
+ typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&XHRData)try{typeof XHRData!='undefined'&&window.ginaToolbar.update('data-xhr',XHRData)}catch(ka){throw ka;}triggerEvent(gina,l,'error.'+E,m);r&&triggerEvent(gina,l,'error.'+E+'.hform',m);W&&triggerEvent(gina,A.target,'error.'+A.id+'.hlink',m)}if(typeof m!='undefined'&&typeof m.location!='undefined')return window.location.hash='',m.location=/^http/.test(m.location)||/^\//.test(m.location)?m.location:location.protocol+'//'+m.location,setTimeout(()=>
187
+ {window.location.href=m.location},U)}else if(f.status!=0)if(m={status:f.status,message:''},/blob/.test(f.responseType)){M=new Blob([this.response],{type:'text/plain'});var S=new FileReader,X='';S.addEventListener('loadend',Q=>{typeof merge=='undefined'&&(merge=H('lib/merge'));/string/i.test(typeof Q.srcElement.result)?X+=Q.srcElement.result:typeof Q.srcElement.result=='object'?m=merge(m,Q.srcElement.result):m.message+=Q.srcElement.result;if(/^2/.test(S.readyState)){if(/^(\{|\[)/.test(X))try{m=merge(m,
188
+ JSON.parse(X))}catch(pa){m=merge(m,pa)}m.message||delete m.message;aa&&(aa.eventData.error=m);if(typeof m!='undefined'&&typeof m.error!='undefined'&&m.error.fields&&typeof m.error.fields=='object'){Q={};var ka=0,ua;for(ua in m.error.fields)++ka,Q[ua]={isApplicationValidationError:m.error.fields[ua]};ka>0&&handleErrorsDisplay(aa.target,Q)}XHRData=m;if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&XHRData)try{window.ginaToolbar.update('data-xhr',XHRData)}catch(pa){throw pa;}triggerEvent(gina,
189
+ l,'error.'+E,m);r&&triggerEvent(gina,l,'error.'+E+'.hform',m);W&&triggerEvent(gina,A.target,'error.'+A.id+'.hlink',m)}});S.readAsText(M)}else{if(/^(\{|\[)/.test(f.responseText))try{m=merge(m,JSON.parse(f.responseText))}catch(Q){m=merge(m,Q)}else typeof f.responseText=='object'?m=merge(m,f.responseText):m.message=f.responseText;aa&&(aa.eventData.error=m);if(typeof m!='undefined'&&typeof m.error!='undefined'&&m.error.fields&&typeof m.error.fields=='object'){Y={};v=0;for(var g in m.error.fields)++v,
190
+ Y[g]={isApplicationValidationError:m.error.fields[g]};v>0&&handleErrorsDisplay(aa.target,Y)}XHRData=m;if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&XHRData)try{window.ginaToolbar.update('data-xhr',XHRData)}catch(Q){throw Q;}triggerEvent(gina,l,'error.'+E,m);r&&triggerEvent(gina,l,'error.'+E+'.hform',m);W&&triggerEvent(gina,A.target,'error.'+A.id+'.hlink',m)}};f.onprogress=function(U){var Y='0';U.lengthComputable&&(Y=U.loaded/U.total,Y=parseInt(Y*100));U={status:100,progress:Y};
191
+ aa&&(aa.eventData.onprogress=U);triggerEvent(gina,l,'progress.'+E,U)};f.ontimeout=function(U){m={status:408,error:'Request Timeout'};aa&&(aa.eventData.ontimeout=m);triggerEvent(gina,l,'error.'+E,m);r&&triggerEvent(gina,l,'error.'+E+'.hform',m);W&&triggerEvent(gina,A.target,'error.'+A.id+'.hlink',m)}}
192
192
  function removeListener(f,q,F,H){typeof f.event!='undefined'&&f.event.isTouchSupported&&/^(click|mouseout|mouseover)/.test(F)&&f.event[F].indexOf(q)!=-1&&f.event[F].splice(f.event[F].indexOf(q),1);if(typeof q!='undefined'&&q!=null)if(q.removeEventListener)if(Array.isArray(q))for(i=0,len=q.length;i<len;i++)f=/\.$/.test(F)?F+q[i].id:F,q.removeEventListener(f,H,!1),typeof gina.events[f]!='undefined'&&delete gina.events[f];else F=/\.$/.test(F)?F+q.id:F,q.removeEventListener(F,H,!1);else{if(q.attachEvent)if(Array.isArray(q))for(i=
193
- 0,len=q.length;i<len;i++)f=/\.$/.test(F)?F+q[i].id:F,q.detachEvent('on'+f,H),typeof gina.events[f]!='undefined'&&delete gina.events[f];else F=/\.$/.test(F)?F+q.id:F,q.detachEvent('on'+F,H)}else if(Array.isArray(q))for(i=0,len=q.length;i<len;i++){let N=/\.$/.test(F)?F+q[i].id:F;f.customEvent.removeListener(N,H);typeof gina.events[N]!='undefined'&&delete gina.events[N]}else F=/\.$/.test(F)?F+q.id:F,f.customEvent.removeListener(F,H);typeof gina.events[F]!='undefined'&&delete gina.events[F];typeof H!=
193
+ 0,len=q.length;i<len;i++)f=/\.$/.test(F)?F+q[i].id:F,q.detachEvent('on'+f,H),typeof gina.events[f]!='undefined'&&delete gina.events[f];else F=/\.$/.test(F)?F+q.id:F,q.detachEvent('on'+F,H)}else if(Array.isArray(q))for(i=0,len=q.length;i<len;i++){let M=/\.$/.test(F)?F+q[i].id:F;f.customEvent.removeListener(M,H);typeof gina.events[M]!='undefined'&&delete gina.events[M]}else F=/\.$/.test(F)?F+q.id:F,f.customEvent.removeListener(F,H);typeof gina.events[F]!='undefined'&&delete gina.events[F];typeof H!=
194
194
  'undefined'&&H()}
195
195
  function on(f,q){if(!this.plugin)throw Error('No `plugin` reference found for this event: `'+f);if(gina.registeredEvents[this.plugin].indexOf(f)<0&&!/^init$/.test(f)&&!/\.hform$/.test(f)&&!/\.hlink$/.test(f))q(Error('Event `'+f+'` not handled by ginaEventHandler'));else{var F=null,H=null;typeof this.id!='undefined'&&typeof this.id!='object'?(F=this.target||this,H=this.id):typeof this.target!='undefined'?((F=this.target)||(F=this),H=typeof F.getAttribute!='undefined'?F.getAttribute('id'):this.id):
196
- (F=this.target,H=instance.id);this.eventData&&!F.eventData&&(F.eventData=this.eventData);f=/\.(hform|hlink)$/.test(f)?/\.hform$/.test(f)?f.replace(/\.hform$/,'.'+H+'.hform'):f.replace(/\.hlink$/,'.'+H+'.hlink'):f+('.'+H);gina.events[f]||(addListener(gina,F,f,function(N){/^(oob)?beforeswap\./.test(N.type)||cancelEvent(N);var U=null;N.detail?U=N.detail:typeof this.eventData.submit!='undefined'?U=this.eventData.submit:typeof this.eventData.error!='undefined'?U=this.eventData.error:typeof this.eventData.success!=
197
- 'undefined'&&(U=this.eventData.success);q&&q(N,U)}),this.initialized&&!this.isReady&&triggerEvent(gina,F,'init.'+H));return this}}
198
- function parseXhrHtmlAnswer(f){f=(typeof f=='string'?f:'').replace(/<head(\s[^>]*)?>[\s\S]*?<\/head>/i,'');var q=(new DOMParser).parseFromString('<body><template>'+f+'</template></body>','text/html');if(f=q.body?q.body.querySelector('template'):null){var F=f.content;f.parentNode.removeChild(f);q.body.appendChild(typeof q.adoptNode=='function'?q.adoptNode(F):F)}f=function(H){H=q.getElementById(H);if(!H)return null;var N=H.value;try{H.parentNode.removeChild(H)}catch(U){}if(typeof N!='string'||N==='')return null;
199
- try{return JSON.parse(decodeURIComponent(N))}catch(U){return null}};return{doc:q,data:f('gina-without-layout-xhr-data'),view:f('gina-without-layout-xhr-view')}}
200
- function applyOobSwaps(f,q){var F='innerHTML outerHTML textContent beforebegin afterbegin beforeend afterend delete none'.split(' '),H=q.$target,N=q.id,U=!!q.hFormIsRequired;q=q.gina;var D={list:[],rebindSelf:!1},m=[],E=[],A=0;if(!f||typeof f.querySelectorAll!='function')return D;var aa=function(y){y=y.querySelectorAll('[data-gina-swap-oob]');for(var x=0;x<y.length;++x)m.push(y[x])};aa(f);var l=f.querySelectorAll('template');f=[];for(A=0;A<l.length;++A)if(l[A].content){var W=m.length;aa(l[A].content);
201
- m.length>W&&f.push(l[A])}for(A=0;A<m.length;++A){aa=m[A].parentNode;for(l=!1;aa&&aa.nodeType===1;){if(aa.hasAttribute('data-gina-swap-oob')){l=!0;break}aa=aa.parentNode}l?m[A].removeAttribute('data-gina-swap-oob'):E.push(m[A])}for(A=0;A<E.length;++A){aa=E[A];l=aa.getAttribute('id')||null;W=(aa.getAttribute('data-gina-swap-oob')||'').trim();var r=null,n=null,Z=null,T=null,Y=null,v=null;Y=!1;var L=null;W===''||/^true$/i.test(W)?r='outerHTML':W.indexOf(':')>-1?(r=W,n='reserved'):F.indexOf(W)<0?(r=W,
202
- n='unknownStrategy'):r=W;aa.removeAttribute('data-gina-swap-oob');aa.parentNode&&aa.parentNode.removeChild(aa);n||l||(n='noId');n||(Z=document.getElementById(l))||(n='noTarget');L={id:l,strategy:r,swapped:!1};if(n)L.reason=n;else{T=r==='outerHTML'?aa.outerHTML:r==='textContent'?aa.textContent:aa.innerHTML;if(r!=='none'){if((Y=triggerEvent(q,H,'oobbeforeswap.'+N,{target:Z,content:T,strategy:r,oob:!0,oobId:l}))&&Y.defaultPrevented){L.reason='cancelled';D.list.push(L);continue}Y&&Y.detail&&typeof Y.detail.content==
203
- 'string'&&(T=Y.detail.content)}Y=(r==='outerHTML'||r==='delete')&&(Z===H||Z.contains(H));switch(r){case 'innerHTML':Z.innerHTML=T;v=Z;break;case 'outerHTML':v=Z.parentNode;Z.outerHTML=T;break;case 'textContent':Z.textContent=T;break;case 'beforebegin':v=Z.parentNode;Z.insertAdjacentHTML('beforebegin',T);break;case 'afterbegin':Z.insertAdjacentHTML('afterbegin',T);v=Z;break;case 'beforeend':Z.insertAdjacentHTML('beforeend',T);v=Z;break;case 'afterend':v=Z.parentNode;Z.insertAdjacentHTML('afterend',
204
- T);break;case 'delete':Z.parentNode&&Z.parentNode.removeChild(Z)}L.swapped=r!=='none';Y&&(D.rebindSelf=!0);v&&typeof v.getElementsByTagName=='function'&&bindRegion(v,{deferFormId:Y?N:null});r!=='none'&&(triggerEvent(q,H,'oobafterswap.'+N,{target:Z,strategy:r,swapped:L.swapped,oob:!0,oobId:l}),U&&triggerEvent(q,H,'oobafterswap.'+N+'.hform',{target:Z,strategy:r,swapped:L.swapped,oob:!0,oobId:l}))}D.list.push(L)}for(A=0;A<f.length;++A)f[A].content.childElementCount===0&&!/\S/.test(f[A].content.textContent||
196
+ (F=this.target,H=instance.id);this.eventData&&!F.eventData&&(F.eventData=this.eventData);f=/\.(hform|hlink)$/.test(f)?/\.hform$/.test(f)?f.replace(/\.hform$/,'.'+H+'.hform'):f.replace(/\.hlink$/,'.'+H+'.hlink'):f+('.'+H);gina.events[f]||(addListener(gina,F,f,function(M){/^(oob)?beforeswap\./.test(M.type)||cancelEvent(M);var V=null;M.detail?V=M.detail:typeof this.eventData.submit!='undefined'?V=this.eventData.submit:typeof this.eventData.error!='undefined'?V=this.eventData.error:typeof this.eventData.success!=
197
+ 'undefined'&&(V=this.eventData.success);q&&q(M,V)}),this.initialized&&!this.isReady&&triggerEvent(gina,F,'init.'+H));return this}}
198
+ function parseXhrHtmlAnswer(f){f=(typeof f=='string'?f:'').replace(/<head(\s[^>]*)?>[\s\S]*?<\/head>/i,'');var q=(new DOMParser).parseFromString('<body><template>'+f+'</template></body>','text/html');if(f=q.body?q.body.querySelector('template'):null){var F=f.content;f.parentNode.removeChild(f);q.body.appendChild(typeof q.adoptNode=='function'?q.adoptNode(F):F)}f=function(H){H=q.getElementById(H);if(!H)return null;var M=H.value;try{H.parentNode.removeChild(H)}catch(V){}if(typeof M!='string'||M==='')return null;
199
+ try{return JSON.parse(decodeURIComponent(M))}catch(V){return null}};return{doc:q,data:f('gina-without-layout-xhr-data'),view:f('gina-without-layout-xhr-view')}}
200
+ function applyOobSwaps(f,q){var F='innerHTML outerHTML textContent beforebegin afterbegin beforeend afterend delete none'.split(' '),H=q.$target,M=q.id,V=!!q.hFormIsRequired;q=q.gina;var D={list:[],rebindSelf:!1},m=[],E=[],A=0;if(!f||typeof f.querySelectorAll!='function')return D;var aa=function(y){y=y.querySelectorAll('[data-gina-swap-oob]');for(var x=0;x<y.length;++x)m.push(y[x])};aa(f);var l=f.querySelectorAll('template');f=[];for(A=0;A<l.length;++A)if(l[A].content){var W=m.length;aa(l[A].content);
201
+ m.length>W&&f.push(l[A])}for(A=0;A<m.length;++A){aa=m[A].parentNode;for(l=!1;aa&&aa.nodeType===1;){if(aa.hasAttribute('data-gina-swap-oob')){l=!0;break}aa=aa.parentNode}l?m[A].removeAttribute('data-gina-swap-oob'):E.push(m[A])}for(A=0;A<E.length;++A){aa=E[A];l=aa.getAttribute('id')||null;W=(aa.getAttribute('data-gina-swap-oob')||'').trim();var r=null,n=null,Z=null,U=null,Y=null,v=null;Y=!1;var L=null;W===''||/^true$/i.test(W)?r='outerHTML':W.indexOf(':')>-1?(r=W,n='reserved'):F.indexOf(W)<0?(r=W,
202
+ n='unknownStrategy'):r=W;aa.removeAttribute('data-gina-swap-oob');aa.parentNode&&aa.parentNode.removeChild(aa);n||l||(n='noId');n||(Z=document.getElementById(l))||(n='noTarget');L={id:l,strategy:r,swapped:!1};if(n)L.reason=n;else{U=r==='outerHTML'?aa.outerHTML:r==='textContent'?aa.textContent:aa.innerHTML;if(r!=='none'){if((Y=triggerEvent(q,H,'oobbeforeswap.'+M,{target:Z,content:U,strategy:r,oob:!0,oobId:l}))&&Y.defaultPrevented){L.reason='cancelled';D.list.push(L);continue}Y&&Y.detail&&typeof Y.detail.content==
203
+ 'string'&&(U=Y.detail.content)}Y=(r==='outerHTML'||r==='delete')&&(Z===H||Z.contains(H));switch(r){case 'innerHTML':Z.innerHTML=U;v=Z;break;case 'outerHTML':v=Z.parentNode;Z.outerHTML=U;break;case 'textContent':Z.textContent=U;break;case 'beforebegin':v=Z.parentNode;Z.insertAdjacentHTML('beforebegin',U);break;case 'afterbegin':Z.insertAdjacentHTML('afterbegin',U);v=Z;break;case 'beforeend':Z.insertAdjacentHTML('beforeend',U);v=Z;break;case 'afterend':v=Z.parentNode;Z.insertAdjacentHTML('afterend',
204
+ U);break;case 'delete':Z.parentNode&&Z.parentNode.removeChild(Z)}L.swapped=r!=='none';Y&&(D.rebindSelf=!0);v&&typeof v.getElementsByTagName=='function'&&bindRegion(v,{deferFormId:Y?M:null});r!=='none'&&(triggerEvent(q,H,'oobafterswap.'+M,{target:Z,strategy:r,swapped:L.swapped,oob:!0,oobId:l}),V&&triggerEvent(q,H,'oobafterswap.'+M+'.hform',{target:Z,strategy:r,swapped:L.swapped,oob:!0,oobId:l}))}D.list.push(L)}for(A=0;A<f.length;++A)f[A].content.childElementCount===0&&!/\S/.test(f[A].content.textContent||
205
205
  '')&&f[A].parentNode&&f[A].parentNode.removeChild(f[A]);return D}
206
206
  function listenToXhrEvents(f,q){var F=f.target.getAttribute('data-gina-'+q+'-event-on-success')||null;if(F!=null)if(/\((.*)\)/.test(F))try{console.warn('[gina-event] function-call shape no longer supported on data-gina-'+q+'-event-on-success \u2014 use a bare identifier and register the handler on window: '+F)}catch(H){}else f.on('success.h'+q,window[F]);F=f.target.getAttribute('data-gina-'+q+'-event-on-error')||null;if(F!=null)if(/\((.*)\)/.test(F))try{console.warn('[gina-event] function-call shape no longer supported on data-gina-'+q+
207
207
  '-event-on-error \u2014 use a bare identifier and register the handler on window: '+F)}catch(H){}else f.on('error.h'+q,window[F])}define('utils/events',function(){});
208
- function PrototypesHelper(f){var q=typeof module!=='undefined'&&module.exports?!1:!0,F=f||null;f=null;if(typeof GINA_DIR=='undefined'&&!q&&typeof process!='undefined'&&process.argv.length>3)if(/^\{/.test(process.argv[2]))f=JSON.parse(process.argv[2]).envVars;else if(/\.ctx$/.test(process.argv[2])){f=require('fs');var H=process.argv[2].split(/\-\-argv\-filename=/)[1];f=JSON.parse(f.readFileSync(H).toString()).envVars}if(F&&typeof F!='undefined'&&typeof F.dateFormat!='undefined')for(let N in F.dateFormat)typeof Date[N]==
209
- 'undefined'&&Object.defineProperty(Date.prototype,N,{writable:!1,enumerable:!1,configurable:!0,value:function(){var U={0:this},D=1,m;for(m in arguments)U[D]=arguments[m],++D;U.length=D;return F.dateFormat[N].apply(this,U)}});typeof Array.clone=='undefined'&&Object.defineProperty(Array.prototype,'clone',{writable:!1,enumerable:!1,configurable:!0,value:function(){return this.slice(0)}});typeof JSON.clone!='undefined'||q||(typeof f!='undefined'&&f!=null?JSON.clone=require(f.GINA_DIR+'/utils/prototypes.json_clone'):
210
- (f||(q=__dirname+'/../../../',require(q+'/utils/helper'),setEnvVar('GINA_DIR',q,!0),f=getEnvVars()),JSON.clone=require(getEnvVar('GINA_DIR')+'/utils/prototypes.json_clone')));typeof JSON.escape=='undefined'&&(JSON.escape=function(N){try{return N.replace(/\n/g,'\\n').replace(/\r/g,'\\r').replace(/\t/g,'\\t')}catch(U){throw U;}});typeof Array.toString=='undefined'&&(Array.prototype.toString=function(){return this.join()});typeof Array.inArray=='undefined'&&Object.defineProperty(Array.prototype,'inArray',
211
- {writable:!1,enumerable:!1,configurable:!0,value:function(N){return this.indexOf(N)!=-1}});typeof Array.from=='undefined'&&Object.defineProperty(Array.prototype,'from',{writable:!1,enumerable:!1,configurable:!0,value:function(N){for(var U={},D=[],m=N.length,E=0,A=0;A<m;A++){var aa=N[A];U[aa]!==1&&(U[aa]=1,D[E++]=aa)}return D}});typeof Object.count=='undefined'&&Object.defineProperty(Object.prototype,'count',{writable:!0,enumerable:!1,configurable:!0,value:function(){var N=0;try{this instanceof String&&
212
- JSON.parse(this);for(var U in this)this.hasOwnProperty(U)&&++N;return N}catch(D){return N}}});typeof global!='undefined'&&typeof global.__stack=='undefined'&&Object.defineProperty(global,'__stack',{configurable:!0,get:function(){var N=Error.prepareStackTrace;Error.prepareStackTrace=function(D,m){return m};var U=Error();Error.captureStackTrace(U,arguments.callee);U=U.stack;Error.prepareStackTrace=N;return U}})}
208
+ function PrototypesHelper(f){var q=typeof module!=='undefined'&&module.exports?!1:!0,F=f||null;f=null;if(typeof GINA_DIR=='undefined'&&!q&&typeof process!='undefined'&&process.argv.length>3)if(/^\{/.test(process.argv[2]))f=JSON.parse(process.argv[2]).envVars;else if(/\.ctx$/.test(process.argv[2])){f=require('fs');var H=process.argv[2].split(/\-\-argv\-filename=/)[1];f=JSON.parse(f.readFileSync(H).toString()).envVars}if(F&&typeof F!='undefined'&&typeof F.dateFormat!='undefined')for(let M in F.dateFormat)typeof Date[M]==
209
+ 'undefined'&&Object.defineProperty(Date.prototype,M,{writable:!1,enumerable:!1,configurable:!0,value:function(){var V={0:this},D=1,m;for(m in arguments)V[D]=arguments[m],++D;V.length=D;return F.dateFormat[M].apply(this,V)}});typeof Array.clone=='undefined'&&Object.defineProperty(Array.prototype,'clone',{writable:!1,enumerable:!1,configurable:!0,value:function(){return this.slice(0)}});typeof JSON.clone!='undefined'||q||(typeof f!='undefined'&&f!=null?JSON.clone=require(f.GINA_DIR+'/utils/prototypes.json_clone'):
210
+ (f||(q=__dirname+'/../../../',require(q+'/utils/helper'),setEnvVar('GINA_DIR',q,!0),f=getEnvVars()),JSON.clone=require(getEnvVar('GINA_DIR')+'/utils/prototypes.json_clone')));typeof JSON.escape=='undefined'&&(JSON.escape=function(M){try{return M.replace(/\n/g,'\\n').replace(/\r/g,'\\r').replace(/\t/g,'\\t')}catch(V){throw V;}});typeof Array.toString=='undefined'&&(Array.prototype.toString=function(){return this.join()});typeof Array.inArray=='undefined'&&Object.defineProperty(Array.prototype,'inArray',
211
+ {writable:!1,enumerable:!1,configurable:!0,value:function(M){return this.indexOf(M)!=-1}});typeof Array.from=='undefined'&&Object.defineProperty(Array.prototype,'from',{writable:!1,enumerable:!1,configurable:!0,value:function(M){for(var V={},D=[],m=M.length,E=0,A=0;A<m;A++){var aa=M[A];V[aa]!==1&&(V[aa]=1,D[E++]=aa)}return D}});typeof Object.count=='undefined'&&Object.defineProperty(Object.prototype,'count',{writable:!0,enumerable:!1,configurable:!0,value:function(){var M=0;try{this instanceof String&&
212
+ JSON.parse(this);for(var V in this)this.hasOwnProperty(V)&&++M;return M}catch(D){return M}}});typeof global!='undefined'&&typeof global.__stack=='undefined'&&Object.defineProperty(global,'__stack',{configurable:!0,get:function(){var M=Error.prepareStackTrace;Error.prepareStackTrace=function(D,m){return m};var V=Error();Error.captureStackTrace(V,arguments.callee);V=V.stack;Error.prepareStackTrace=M;return V}})}
213
213
  typeof module!=='undefined'&&module.exports?module.exports=PrototypesHelper:typeof define==='function'&&define.amd&&define('helpers/prototypes',[],function(){return PrototypesHelper});
214
- function DateFormatHelper(){var f=typeof module!=='undefined'&&module.exports?!1:!0,q=f?require('lib/merge'):require('./../lib/merge');var F='en-US';var H='en';var N={'default':'ddd mmm dd yyyy HH:MM:ss',shortDate:'m/d/yy',shortDate2:'mm/dd/yyyy',mediumDate:'mmm d, yyyy',longDate:'mmmm d, yyyy',fullDate:'dddd, mmmm d, yyyy',cookieDate:'GMT:ddd, dd mmm yyyy HH:MM:ss',logger:'yyyy mmm dd HH:MM:ss',shortTime:'h:MM TT',shortTime2:'h:MM',mediumTime:'h:MM:ss TT',mediumTime2:'h:MM:ss',longTime:'h:MM:ss TT Z',
215
- longTime2:'h:MM:ss TT',concatenatedDate:'yyyymmdd',isoDate:'yyyy-mm-dd',isoTime:'HH:MM:ss',shortIsoTime:'HH:MM',longIsoTime:'HH:MM:ss TT',isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",longIsoDateTime:"yyyy-mm-dd'T'HH:MM:ss.L",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"};var U={en:{dayNames:'Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday'.split(' '),monthNames:'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December'.split(' '),
214
+ function DateFormatHelper(){var f=typeof module!=='undefined'&&module.exports?!1:!0,q=f?require('lib/merge'):require('./../lib/merge');var F='en-US';var H='en';var M={'default':'ddd mmm dd yyyy HH:MM:ss',shortDate:'m/d/yy',shortDate2:'mm/dd/yyyy',mediumDate:'mmm d, yyyy',longDate:'mmmm d, yyyy',fullDate:'dddd, mmmm d, yyyy',cookieDate:'GMT:ddd, dd mmm yyyy HH:MM:ss',logger:'yyyy mmm dd HH:MM:ss',shortTime:'h:MM TT',shortTime2:'h:MM',mediumTime:'h:MM:ss TT',mediumTime2:'h:MM:ss',longTime:'h:MM:ss TT Z',
215
+ longTime2:'h:MM:ss TT',concatenatedDate:'yyyymmdd',isoDate:'yyyy-mm-dd',isoTime:'HH:MM:ss',shortIsoTime:'HH:MM',longIsoTime:'HH:MM:ss TT',isoDateTime:"yyyy-mm-dd'T'HH:MM:ss",longIsoDateTime:"yyyy-mm-dd'T'HH:MM:ss.L",isoUtcDateTime:"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"};var V={en:{dayNames:'Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday'.split(' '),monthNames:'Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April May June July August September October November December'.split(' '),
216
216
  masks:{'default':'ddd mmm dd yyyy HH:MM:ss',shortDate:'m/d/yy',shortDate2:'mm/dd/yyyy',mediumDate:'mmm d, yyyy',longDate:'mmmm d, yyyy',fullDate:'dddd, mmmm d, yyyy'}},fr:{dayNames:'dim lun mar mer jeu ven sam dimanche lundi mardi mercredi jeudi vendredi samedi'.split(' '),monthNames:'Jan F\u00e9v Mar Avr Mai Jui Juil Ao\u00fb Sep Oct Nov D\u00e9c Janvier F\u00e9vrier Mars Avril Mai Juin Juillet Ao\u00fbt Septembre Octobre Novembre D\u00e9cembre'.split(' '),masks:{'default':'ddd mmm dd yyyy HH:MM:ss',
217
217
  shortDate:'d/m/yy',shortDate2:'dd/mm/yyyy',mediumDate:'d mmm, yyyy',longDate:'d mmmm, yyyy',fullDate:'dddd, d mmmm, yyyy'}}};var D=function(A,aa){if(aa instanceof Date)return A=A.getTime(),aa=aa.getTime(),Math.round(Math.abs(A-aa)/864E5);throw Error('dateTo is not instance of Date() !');},m=['us','eu','corporate'],E=function(A){d=new Date(A.getFullYear(),A.getMonth(),A.getDate());A=d.getDay()||7;d.setDate(d.getDate()+4-A);A=new Date(Date.parse(d.getFullYear(),0,1));return Math.ceil(((d-A)/864E5+1)/
218
- 7)};return{setCulture:function(A,aa){/\-/.test(aa)?(F=aa,H=aa.split(/\-/)[0]):H=aa;return this},format:function(A,aa,l){var W=U[H]||U.en,r=null;try{r=q(W.masks,N)}catch(fa){q=(f=typeof module!=='undefined'&&module.exports?!1:!0)?require('lib/merge'):require('./../lib/merge'),r=q(W.masks,N)}typeof U[F]!='undefined'&&(W=U[F],typeof U[F].mask!='undefined'&&(r=q(W.masks,N)));var n=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
219
- Z=/[^-+\dA-Z]/g,T=function(fa,ua){fa=String(fa);for(ua=ua||2;fa.length<ua;)fa='0'+fa;return fa};arguments.length!=1||Object.prototype.toString.call(A)!='[object String]'||/\d/.test(A)||(aa=A,A=void 0);A=A?new Date(A):new Date;if(isNaN(A))throw SyntaxError('invalid date');aa=String(r[aa]||aa||r['default']);aa.slice(0,4)=='UTC:'&&(aa=aa.slice(4),l=!0);var Y=l?'getUTC':'get';r=A[Y+'Date']();var v=A[Y+'Day'](),L=A[Y+'Month'](),y=A[Y+'FullYear'](),x=A[Y+'Hours'](),R=A[Y+'Minutes'](),X=A[Y+'Seconds']();
220
- Y=A[Y+'Milliseconds']();var g=l?0:A.getTimezoneOffset(),V={d:r,dd:T(r),ddd:W.dayNames[v],dddd:W.dayNames[v+7],m:L+1,mm:T(L+1),mmm:W.monthNames[L],mmmm:W.monthNames[L+12],yy:String(y).slice(2),yyyy:y,h:x%12||12,hh:T(x%12||12),H:x,HH:T(x),M:R,MM:T(R),s:X,ss:T(X),l:T(Y,3),L:T(Y),t:x<12?'a':'p',tt:x<12?'am':'pm',T:x<12?'A':'P',TT:x<12?'AM':'PM',Z:l?'UTC':(String(A).match(n)||['']).pop().replace(Z,''),o:(g>0?'-':'+')+T(Math.floor(Math.abs(g)/60)*100+Math.abs(g)%60,4),S:['th','st','nd','rd'][r%10>3?0:(r%
221
- 100-r%10!=10)*r%10]};return aa.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(fa){return fa in V?V[fa]:fa.slice(1,fa.length-1)})},countDaysTo:D,getDaysTo:function(A,aa,l){if(aa instanceof Date){aa=D(A,aa);var W=A.getMonth(),r=A.getFullYear();A=A.getDate()+1;A=new Date(r,W,A);W=[];for(r=0;r<aa;++r)typeof l!='undefined'?W.push((new Date(A)).format(l)):W.push(new Date(A)),A.setDate(A.getDate()+1);return W||[]}throw Error('dateTo is not instance of Date() !');},getDaysInMonth:function(A){var aa=
218
+ 7)};return{setCulture:function(A,aa){/\-/.test(aa)?(F=aa,H=aa.split(/\-/)[0]):H=aa;return this},format:function(A,aa,l){var W=V[H]||V.en,r=null;try{r=q(W.masks,M)}catch(ka){q=(f=typeof module!=='undefined'&&module.exports?!1:!0)?require('lib/merge'):require('./../lib/merge'),r=q(W.masks,M)}typeof V[F]!='undefined'&&(W=V[F],typeof V[F].mask!='undefined'&&(r=q(W.masks,M)));var n=/\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
219
+ Z=/[^-+\dA-Z]/g,U=function(ka,ua){ka=String(ka);for(ua=ua||2;ka.length<ua;)ka='0'+ka;return ka};arguments.length!=1||Object.prototype.toString.call(A)!='[object String]'||/\d/.test(A)||(aa=A,A=void 0);A=A?new Date(A):new Date;if(isNaN(A))throw SyntaxError('invalid date');aa=String(r[aa]||aa||r['default']);aa.slice(0,4)=='UTC:'&&(aa=aa.slice(4),l=!0);var Y=l?'getUTC':'get';r=A[Y+'Date']();var v=A[Y+'Day'](),L=A[Y+'Month'](),y=A[Y+'FullYear'](),x=A[Y+'Hours'](),S=A[Y+'Minutes'](),X=A[Y+'Seconds']();
220
+ Y=A[Y+'Milliseconds']();var g=l?0:A.getTimezoneOffset(),Q={d:r,dd:U(r),ddd:W.dayNames[v],dddd:W.dayNames[v+7],m:L+1,mm:U(L+1),mmm:W.monthNames[L],mmmm:W.monthNames[L+12],yy:String(y).slice(2),yyyy:y,h:x%12||12,hh:U(x%12||12),H:x,HH:U(x),M:S,MM:U(S),s:X,ss:U(X),l:U(Y,3),L:U(Y),t:x<12?'a':'p',tt:x<12?'am':'pm',T:x<12?'A':'P',TT:x<12?'AM':'PM',Z:l?'UTC':(String(A).match(n)||['']).pop().replace(Z,''),o:(g>0?'-':'+')+U(Math.floor(Math.abs(g)/60)*100+Math.abs(g)%60,4),S:['th','st','nd','rd'][r%10>3?0:(r%
221
+ 100-r%10!=10)*r%10]};return aa.replace(/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,function(ka){return ka in Q?Q[ka]:ka.slice(1,ka.length-1)})},countDaysTo:D,getDaysTo:function(A,aa,l){if(aa instanceof Date){aa=D(A,aa);var W=A.getMonth(),r=A.getFullYear();A=A.getDate()+1;A=new Date(r,W,A);W=[];for(r=0;r<aa;++r)typeof l!='undefined'?W.push((new Date(A)).format(l)):W.push(new Date(A)),A.setDate(A.getDate()+1);return W||[]}throw Error('dateTo is not instance of Date() !');},getDaysInMonth:function(A){var aa=
222
222
  A.getMonth();A=A.getFullYear();A=new Date(A,aa,1);for(var l=[];A.getMonth()===aa;)l.push(new Date(A)),A.setDate(A.getDate()+1);return l},getQuarter:function(A,aa){if(arguments.length==1&&typeof arguments[0]=='string'){if(m.indexOf(arguments[0].toLowerCase())<0)throw Error('Quarter '+arguments[0]+' code not supported !');A=new Date;aa=arguments[0]}typeof A=='undefined'&&(A=new Date);typeof aa=='undefined'&&(aa='corporate');aa=aa.toLowerCase();switch(aa){case 'us':var l=[4,1,2,3];break;case 'corportate':case 'eu':l=
223
223
  [1,2,3,4];break;default:l=[1,2,3,4]}return l[Math.floor(A.getMonth()/3)]},getHalfYear:function(A,aa){if(arguments.length==1&&typeof arguments[0]=='string'){if(m.indexOf(arguments[0].toLowerCase())<0)throw Error('Quarter '+arguments[0]+' code not supported !');A=new Date;aa=arguments[0]}typeof A=='undefined'&&(A=new Date);typeof aa=='undefined'&&(aa='corporate');aa=aa.toLowerCase();return A.getQuarter(aa)<=2?1:2},getWeek:function(A,aa){typeof A=='undefined'&&(A=new Date);typeof aa=='undefined'&&(aa=
224
224
  'ISO 8601');aa=aa.replace(/\s+/g,'').toLowerCase();switch(aa){case 'corporate':case 'eu':case 'iso8601':return E(A);default:return E(A)}},addHours:function(A,aa){A=new Date(A.getTime());A.setHours(A.getHours()+aa);return A},addDays:function(A,aa){A=new Date(A.getTime());A.setHours(A.getHours()+aa*24);return A},addYears:function(A,aa){A=new Date(A.getTime());A.setFullYear(A.getFullYear()+aa);return A}}}
225
225
  typeof module!=='undefined'&&module.exports?module.exports=DateFormatHelper:typeof define==='function'&&define.amd&&define('helpers/dateFormat',[],function(){return DateFormatHelper});
226
- define('gina','require lib/merge lib/uuid lib/routing lib/money utils/events helpers/prototypes helpers/dateFormat'.split(' '),function(f){f('utils/events');var q=f('lib/merge'),F=f('lib/uuid');f('lib/routing');var H=f('lib/money'),N=f('helpers/dateFormat')();f('helpers/prototypes')({dateFormat:N});window.process||function(U,D,m,E,A,aa,l){for(aa=U[m]||(U[m]={});!l&&A<E.length;)l=U[E[A++]+'requestAnimationFrame'];aa[D]=aa[D]||l&&l.bind(U)||U.setImmediate||U.setTimeout}(window,'nextTick','process',
227
- ['r','webkitR','mozR','msR','oR'],0);window.getComputedStyle||(window.getComputedStyle=function(U,D){this.el=U;this.getPropertyValue=function(m){var E=/(\-([a-z]){1})/g;m=='float'&&(m='styleFloat');E.test(m)&&(m=m.replace(E,function(){return arguments[2].toUpperCase()}));return U.currentStyle[m]?U.currentStyle[m]:null};return this});return async function(U){this.plugin='gina';var D='gina-'+F(),m=document;document.id=D;var E={id:D,isFrameworkLoaded:!1,hasValidator:!1,hasPopinHandler:!1,config:{},session:null,
228
- registeredEvents:{},events:{},setOptions:function(A){A&&typeof A=='object'&&A!==E.config&&(E.config=q(E.config,A,!0))},money:H};try{typeof parent.window.gina!='undefined'&&(window.gina=q(window.gina||{},parent.window.gina))}catch(A){}E=q(window.gina||{},E);registerEvents(this.plugin,['ginaloaded','ready']);triggerEvent(U,m,'ginaloaded',E)}});
229
- !function(f,q){'object'==typeof exports&&'undefined'!=typeof module?module.exports=q():'function'==typeof define&&define.amd?define('vendor/engine.io',q):(f='undefined'!=typeof globalThis?globalThis:f||self).eio=q()}(this,function(){function f(da,xa){for(var ja=0;ja<xa.length;ja++){var C=xa[ja];C.enumerable=C.enumerable||!1;C.configurable=!0;'value'in C&&(C.writable=!0);var P=Object,ma=P.defineProperty;var Aa=C.key;a:if('object'==typeof Aa&&Aa){var Ua=Aa[Symbol.toPrimitive];if(void 0!==Ua){Aa=Ua.call(Aa,
230
- 'string');if('object'!=typeof Aa)break a;throw new TypeError('@@toPrimitive must return a primitive value.');}Aa=String(Aa)}ma.call(P,da,'symbol'==typeof Aa?Aa:Aa+'',C)}}function q(da,xa,ja){return xa&&f(da.prototype,xa),ja&&f(da,ja),Object.defineProperty(da,'prototype',{writable:!1}),da}function F(){return F=Object.assign?Object.assign.bind():function(da){for(var xa=1;xa<arguments.length;xa++){var ja=arguments[xa],C;for(C in ja)({}).hasOwnProperty.call(ja,C)&&(da[C]=ja[C])}return da},F.apply(null,
231
- arguments)}function H(da){return H=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(xa){return xa.__proto__||Object.getPrototypeOf(xa)},H(da)}function N(da,xa){da.prototype=Object.create(xa.prototype);da.prototype.constructor=da;D(da,xa)}function U(){try{var da=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(xa){}return(U=function(){return!!da})()}function D(da,xa){return D=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(ja,C){return ja.__proto__=
232
- C,ja},D(da,xa)}function m(da){return m='function'==typeof Symbol&&'symbol'==typeof Symbol.iterator?function(xa){return typeof xa}:function(xa){return xa&&'function'==typeof Symbol&&xa.constructor===Symbol&&xa!==Symbol.prototype?'symbol':typeof xa},m(da)}function E(da){var xa='function'==typeof Map?new Map:void 0;return E=function(ja){function C(){return function(P,ma,Aa){if(U())return Reflect.construct.apply(null,arguments);var Ua=[null];Ua.push.apply(Ua,ma);Ua=new (P.bind.apply(P,Ua));return Aa&&
233
- D(Ua,Aa.prototype),Ua}(ja,arguments,H(this).constructor)}if(null===ja||!function(P){try{return-1!==Function.toString.call(P).indexOf('[native code]')}catch(ma){return'function'==typeof P}}(ja))return ja;if('function'!=typeof ja)throw new TypeError('Super expression must either be null or a function');if(void 0!==xa){if(xa.has(ja))return xa.get(ja);xa.set(ja,C)}return C.prototype=Object.create(ja.prototype,{constructor:{value:C,enumerable:!1,writable:!0,configurable:!0}}),D(C,ja)},E(da)}function A(da){return da instanceof
234
- Uint8Array?da:da instanceof ArrayBuffer?new Uint8Array(da):new Uint8Array(da.buffer,da.byteOffset,da.byteLength)}function aa(){return new TransformStream({transform:function(da,xa){!function(ja,C){V&&ja.data instanceof Blob?ja.data.arrayBuffer().then(A).then(C):fa&&(ja.data instanceof ArrayBuffer||ua(ja.data))?C(A(ja.data)):qa(ja,!1,function(P){X||=new TextEncoder;C(X.encode(P))})}(da,function(ja){var C=ja.length;if(C<126){var P=new Uint8Array(1);(new DataView(P.buffer)).setUint8(0,C)}else if(C<65536){P=
235
- new Uint8Array(3);var ma=new DataView(P.buffer);ma.setUint8(0,126);ma.setUint16(1,C)}else P=new Uint8Array(9),ma=new DataView(P.buffer),ma.setUint8(0,127),ma.setBigUint64(1,BigInt(C));da.data&&'string'!=typeof da.data&&(P[0]|=128);xa.enqueue(P);xa.enqueue(ja)})}})}function l(da){return da.reduce(function(xa,ja){return xa+ja.length},0)}function W(da,xa){if(da[0].length===xa)return da.shift();for(var ja=new Uint8Array(xa),C=0,P=0;P<xa;P++)ja[P]=da[0][C++],C===da[0].length&&(da.shift(),C=0);return da.length&&
236
- C<da[0].length&&(da[0]=da[0].slice(C)),ja}function r(da){if(da){for(var xa in r.prototype)da[xa]=r.prototype[xa];return da}}function n(da){for(var xa=arguments.length,ja=Array(xa>1?xa-1:0),C=1;C<xa;C++)ja[C-1]=arguments[C];return ja.reduce(function(P,ma){return da.hasOwnProperty(ma)&&(P[ma]=da[ma]),P},{})}function Z(da,xa){xa.useNativeTimers?(da.setTimeoutFn=wa.bind(Da),da.clearTimeoutFn=Va.bind(Da)):(da.setTimeoutFn=Da.setTimeout.bind(Da),da.clearTimeoutFn=Da.clearTimeout.bind(Da))}function T(){return Date.now().toString(36).substring(3)+
237
- Math.random().toString(36).substring(2,5)}function Y(){}function v(){for(var da in ib.requests)ib.requests.hasOwnProperty(da)&&ib.requests[da].abort()}function L(da){da=da.xdomain;try{if('undefined'!=typeof XMLHttpRequest&&(!da||ab))return new XMLHttpRequest}catch(xa){}if(!da)try{return new (Da[['Active'].concat('Object').join('X')])('Microsoft.XMLHTTP')}catch(xa){}}function y(da){if(da.length>8E3)throw'URI too long';var xa=da,ja=da.indexOf('['),C=da.indexOf(']');-1!=ja&&-1!=C&&(da=da.substring(0,
238
- ja)+da.substring(ja,C).replace(/:/g,';')+da.substring(C,da.length));var P,ma;da=Mb.exec(da||'');for(var Aa={},Ua=14;Ua--;)Aa[pb[Ua]]=da[Ua]||'';return-1!=ja&&-1!=C&&(Aa.source=xa,Aa.host=Aa.host.substring(1,Aa.host.length-1).replace(/;/g,':'),Aa.authority=Aa.authority.replace('[','').replace(']','').replace(/;/g,':'),Aa.ipv6uri=!0),Aa.pathNames=function(cb,k){cb=k.replace(/\/{2,9}/g,'/').split('/');'/'!=k.slice(0,1)&&0!==k.length||cb.splice(0,1);'/'==k.slice(-1)&&cb.splice(cb.length-1,1);return cb}(0,
239
- Aa.path),Aa.queryKey=(P=Aa.query,ma={},P.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(cb,k,w){k&&(ma[k]=w)}),ma),Aa}var x=Object.create(null);x.open='0';x.close='1';x.ping='2';x.pong='3';x.message='4';x.upgrade='5';x.noop='6';var R=Object.create(null);Object.keys(x).forEach(function(da){R[x[da]]=da});for(var X,g={type:'error',data:'parser error'},V='function'==typeof Blob||'undefined'!=typeof Blob&&'[object BlobConstructor]'===Object.prototype.toString.call(Blob),fa='function'==typeof ArrayBuffer,
240
- ua=function(da){return'function'==typeof ArrayBuffer.isView?ArrayBuffer.isView(da):da&&da.buffer instanceof ArrayBuffer},qa=function(da,xa,ja){var C=da.type;da=da.data;return V&&da instanceof Blob?xa?ja(da):K(da,ja):fa&&(da instanceof ArrayBuffer||ua(da))?xa?ja(da):K(new Blob([da]),ja):ja(x[C]+(da||''))},K=function(da,xa){var ja=new FileReader;return ja.onload=function(){var C=ja.result.split(',')[1];xa('b'+(C||''))},ja.readAsDataURL(da)},ha='undefined'==typeof Uint8Array?[]:new Uint8Array(256),oa=
241
- 0;oa<64;oa++)ha['ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.charCodeAt(oa)]=oa;var Ja,O='function'==typeof ArrayBuffer,S=function(da,xa){if('string'!=typeof da)return{type:'message',data:ya(da,xa)};var ja=da.charAt(0);if('b'===ja){da=da.substring(1);if(O){var C=.75*da.length;ja=da.length;var P=0;'='===da[da.length-1]&&(C--,'='===da[da.length-2]&&C--);var ma=new ArrayBuffer(C),Aa=new Uint8Array(ma);for(C=0;C<ja;C+=4){var Ua=ha[da.charCodeAt(C)];var cb=ha[da.charCodeAt(C+1)];
242
- var k=ha[da.charCodeAt(C+2)];var w=ha[da.charCodeAt(C+3)];Aa[P++]=Ua<<2|cb>>4;Aa[P++]=(15&cb)<<4|k>>2;Aa[P++]=(3&k)<<6|63&w}xa=ya(ma,xa)}else xa={base64:!0,data:da};xa={type:'message',data:xa}}else xa=R[ja]?da.length>1?{type:R[ja],data:da.substring(1)}:{type:R[ja]}:g;return xa},ya=function(da,xa){return'blob'===xa?da instanceof Blob?da:new Blob([da]):da instanceof ArrayBuffer?da:da.buffer},ka=String.fromCharCode(30);r.prototype.on=r.prototype.addEventListener=function(da,xa){return this.t=this.t||
243
- {},(this.t['$'+da]=this.t['$'+da]||[]).push(xa),this};r.prototype.once=function(da,xa){function ja(){this.off(da,ja);xa.apply(this,arguments)}return ja.fn=xa,this.on(da,ja),this};r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(da,xa){if(this.t=this.t||{},0==arguments.length)return this.t={},this;var ja,C=this.t['$'+da];if(!C)return this;if(1==arguments.length)return delete this.t['$'+da],this;for(var P=0;P<C.length;P++)if((ja=C[P])===
244
- xa||ja.fn===xa){C.splice(P,1);break}return 0===C.length&&delete this.t['$'+da],this};r.prototype.emit=function(da){this.t=this.t||{};for(var xa=Array(arguments.length-1),ja=this.t['$'+da],C=1;C<arguments.length;C++)xa[C-1]=arguments[C];if(ja){C=0;for(var P=(ja=ja.slice(0)).length;C<P;++C)ja[C].apply(this,xa)}return this};r.prototype.emitReserved=r.prototype.emit;r.prototype.listeners=function(da){return this.t=this.t||{},this.t['$'+da]||[]};r.prototype.hasListeners=function(da){return!!this.listeners(da).length};
245
- var Ea='function'==typeof Promise&&'function'==typeof Promise.resolve?function(da){return Promise.resolve().then(da)}:function(da,xa){return xa(da,0)},Da='undefined'!=typeof self?self:'undefined'!=typeof window?window:globalThis,wa=Da.setTimeout,Va=Da.clearTimeout,ba=function(da){function xa(ja,C,P){var ma;return(ma=da.call(this,ja)||this).description=C,ma.context=P,ma.type='TransportError',ma}return N(xa,da),xa}(E(Error));oa=function(da){function xa(C){var P;return(P=da.call(this)||this).writable=
246
- !1,Z(P,C),P.opts=C,P.query=C.query,P.socket=C.socket,P.supportsBinary=!C.forceBase64,P}N(xa,da);var ja=xa.prototype;return ja.onError=function(C,P,ma){return da.prototype.emitReserved.call(this,'error',new ba(C,P,ma)),this},ja.open=function(){return this.readyState='opening',this.doOpen(),this},ja.close=function(){return'opening'!==this.readyState&&'open'!==this.readyState||(this.doClose(),this.onClose()),this},ja.send=function(C){'open'===this.readyState&&this.write(C)},ja.onOpen=function(){this.readyState=
247
- 'open';this.writable=!0;da.prototype.emitReserved.call(this,'open')},ja.onData=function(C){C=S(C,this.socket.binaryType);this.onPacket(C)},ja.onPacket=function(C){da.prototype.emitReserved.call(this,'packet',C)},ja.onClose=function(C){this.readyState='closed';da.prototype.emitReserved.call(this,'close',C)},ja.pause=function(C){},ja.createUri=function(C){var P=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return C+'://'+this.i()+this.o()+this.opts.path+this.u(P)},ja.i=function(){var C=
248
- this.opts.hostname;return-1===C.indexOf(':')?C:'['+C+']'},ja.o=function(){return this.opts.port&&(this.opts.secure&&443!==Number(this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?':'+this.opts.port:''},ja.u=function(C){var P='',ma;for(ma in C)C.hasOwnProperty(ma)&&(P.length&&(P+='&'),P+=encodeURIComponent(ma)+'='+encodeURIComponent(C[ma]));C=P;return C.length?'?'+C:''},xa}(r);var Ga=function(da){function xa(){var C;return(C=da.apply(this,arguments)||this).h=!1,C}N(xa,da);var ja=xa.prototype;
249
- return ja.doOpen=function(){this.p()},ja.pause=function(C){var P=this;this.readyState='pausing';var ma=function(){P.readyState='paused';C()};if(this.h||!this.writable){var Aa=0;this.h&&(Aa++,this.once('pollComplete',function(){--Aa||ma()}));this.writable||(Aa++,this.once('drain',function(){--Aa||ma()}))}else ma()},ja.p=function(){this.h=!0;this.doPoll();this.emitReserved('poll')},ja.onData=function(C){var P=this;(function(ma,Aa){ma=ma.split(ka);for(var Ua=[],cb=0;cb<ma.length;cb++){var k=S(ma[cb],
250
- Aa);if(Ua.push(k),'error'===k.type)break}return Ua})(C,this.socket.binaryType).forEach(function(ma){if('opening'===P.readyState&&'open'===ma.type&&P.onOpen(),'close'===ma.type)return P.onClose({description:'transport closed by the server'}),!1;P.onPacket(ma)});'closed'!==this.readyState&&(this.h=!1,this.emitReserved('pollComplete'),'open'===this.readyState&&this.p())},ja.doClose=function(){var C=this,P=function(){C.write([{type:'close'}])};'open'===this.readyState?P():this.once('open',P)},ja.write=
251
- function(C){var P=this;this.writable=!1;(function(ma,Aa){var Ua=ma.length,cb=Array(Ua),k=0;ma.forEach(function(w,G){qa(w,!1,function(ia){cb[G]=ia;++k===Ua&&Aa(cb.join(ka))})})})(C,function(ma){P.doWrite(ma,function(){P.writable=!0;P.emitReserved('drain')})})},ja.uri=function(){var C=this.opts.secure?'https':'http',P=this.query||{};return!1!==this.opts.timestampRequests&&(P[this.opts.timestampParam]=T()),this.supportsBinary||P.sid||(P.b64=1),this.createUri(C,P)},q(xa,[{key:'name',get:function(){return'polling'}}])}(oa),
252
- La=!1;try{La='undefined'!=typeof XMLHttpRequest&&'withCredentials'in new XMLHttpRequest}catch(da){}var ab=La;Ga=function(da){function xa(C){var P;if(P=da.call(this,C)||this,'undefined'!=typeof location){var ma='https:'===location.protocol,Aa=location.port;Aa||=ma?'443':'80';P.xd='undefined'!=typeof location&&C.hostname!==location.hostname||Aa!==C.port}return P}N(xa,da);var ja=xa.prototype;return ja.doWrite=function(C,P){var ma=this;C=this.request({method:'POST',data:C});C.on('success',P);C.on('error',
253
- function(Aa,Ua){ma.onError('xhr post error',Aa,Ua)})},ja.doPoll=function(){var C=this,P=this.request();P.on('data',this.onData.bind(this));P.on('error',function(ma,Aa){C.onError('xhr poll error',ma,Aa)});this.pollXhr=P},xa}(Ga);var ib=function(da){function xa(C,P,ma){var Aa;return(Aa=da.call(this)||this).createRequest=C,Z(Aa,ma),Aa.l=ma,Aa.v=ma.method||'GET',Aa.m=P,Aa.k=void 0!==ma.data?ma.data:null,Aa.A(),Aa}N(xa,da);var ja=xa.prototype;return ja.A=function(){var C,P=this,ma=n(this.l,'agent','pfx',
254
- 'key','passphrase','cert','ca','ciphers','rejectUnauthorized','autoUnref');ma.xdomain=!!this.l.xd;var Aa=this.j=this.createRequest(ma);try{Aa.open(this.v,this.m,!0);try{if(this.l.extraHeaders)for(var Ua in Aa.setDisableHeaderCheck&&Aa.setDisableHeaderCheck(!0),this.l.extraHeaders)this.l.extraHeaders.hasOwnProperty(Ua)&&Aa.setRequestHeader(Ua,this.l.extraHeaders[Ua])}catch(cb){}if('POST'===this.v)try{Aa.setRequestHeader('Content-type','text/plain;charset=UTF-8')}catch(cb){}try{Aa.setRequestHeader('Accept',
255
- '*/*')}catch(cb){}null===(C=this.l.cookieJar)||void 0===C||C.addCookies(Aa);'withCredentials'in Aa&&(Aa.withCredentials=this.l.withCredentials);this.l.requestTimeout&&(Aa.timeout=this.l.requestTimeout);Aa.onreadystatechange=function(){var cb;3!==Aa.readyState||null!==(cb=P.l.cookieJar)&&void 0!==cb&&cb.parseCookies(Aa.getResponseHeader('set-cookie'));4===Aa.readyState&&(200===Aa.status||1223===Aa.status?P.B():P.setTimeoutFn(function(){P.O('number'==typeof Aa.status?Aa.status:0)},0))};Aa.send(this.k)}catch(cb){return void this.setTimeoutFn(function(){P.O(cb)},
256
- 0)}'undefined'!=typeof document&&(this.U=xa.requestsCount++,xa.requests[this.U]=this)},ja.O=function(C){this.emitReserved('error',C,this.j);this.T(!0)},ja.T=function(C){if(void 0!==this.j&&null!==this.j){if(this.j.onreadystatechange=Y,C)try{this.j.abort()}catch(P){}'undefined'!=typeof document&&delete xa.requests[this.U];this.j=null}},ja.B=function(){var C=this.j.responseText;null!==C&&(this.emitReserved('data',C),this.emitReserved('success'),this.T())},ja.abort=function(){this.T()},xa}(r);if(ib.requestsCount=
257
- 0,ib.requests={},'undefined'!=typeof document)'function'==typeof attachEvent?attachEvent('onunload',v):'function'==typeof addEventListener&&addEventListener('onpagehide'in Da?'pagehide':'unload',v,!1);var Ya,qb=(Ya=L({xdomain:!1}))&&null!==Ya.responseType;Ya=function(da){function xa(ja){var C=da.call(this,ja)||this;ja=ja&&ja.forceBase64;return C.supportsBinary=qb&&!ja,C}return N(xa,da),xa.prototype.request=function(){var ja=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return F(ja,{xd:this.xd},
258
- this.opts),new ib(L,this.uri(),ja)},xa}(Ga);var Cb='undefined'!=typeof navigator&&'string'==typeof navigator.product&&'reactnative'===navigator.product.toLowerCase();Ga=function(da){function xa(){return da.apply(this,arguments)||this}N(xa,da);var ja=xa.prototype;return ja.doOpen=function(){var C=this.uri(),P=this.opts.protocols,ma=Cb?{}:n(this.opts,'agent','perMessageDeflate','pfx','key','passphrase','cert','ca','ciphers','rejectUnauthorized','localAddress','protocolVersion','origin','maxPayload',
259
- 'family','checkServerIdentity');this.opts.extraHeaders&&(ma.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(C,P,ma)}catch(Aa){return this.emitReserved('error',Aa)}this.ws.binaryType=this.socket.binaryType;this.addEventListeners()},ja.addEventListeners=function(){var C=this;this.ws.onopen=function(){C.opts.autoUnref&&C.ws.S.unref();C.onOpen()};this.ws.onclose=function(P){return C.onClose({description:'websocket connection closed',context:P})};this.ws.onmessage=function(P){return C.onData(P.data)};
260
- this.ws.onerror=function(P){return C.onError('websocket error',P)}},ja.write=function(C){var P=this;this.writable=!1;for(var ma=function(){var Ua=C[Aa],cb=Aa===C.length-1;qa(Ua,P.supportsBinary,function(k){try{P.doWrite(Ua,k)}catch(w){}cb&&Ea(function(){P.writable=!0;P.emitReserved('drain')},P.setTimeoutFn)})},Aa=0;Aa<C.length;Aa++)ma()},ja.doClose=function(){void 0!==this.ws&&(this.ws.onerror=function(){},this.ws.close(),this.ws=null)},ja.uri=function(){var C=this.opts.secure?'wss':'ws',P=this.query||
261
- {};return this.opts.timestampRequests&&(P[this.opts.timestampParam]=T()),this.supportsBinary||(P.b64=1),this.createUri(C,P)},q(xa,[{key:'name',get:function(){return'websocket'}}])}(oa);var ob=Da.WebSocket||Da.MozWebSocket;Ga=function(da){function xa(){return da.apply(this,arguments)||this}N(xa,da);var ja=xa.prototype;return ja.createSocket=function(C,P,ma){return Cb?new ob(C,P,ma):P?new ob(C,P):new ob(C)},ja.doWrite=function(C,P){this.ws.send(P)},xa}(Ga);oa=function(da){function xa(){return da.apply(this,
262
- arguments)||this}N(xa,da);var ja=xa.prototype;return ja.doOpen=function(){var C=this;try{this.M=new WebTransport(this.createUri('https'),this.opts.transportOptions[this.name])}catch(P){return this.emitReserved('error',P)}this.M.closed.then(function(){C.onClose()}).catch(function(P){C.onError('webtransport error',P)});this.M.ready.then(function(){C.M.createBidirectionalStream().then(function(P){var ma=function(Ua,cb){Ja||=new TextDecoder;var k=[],w=0,G=-1,ia=!1;return new TransformStream({transform:function(ca,
263
- ta){for(k.push(ca);;){if(0===w){if(l(k)<1)break;ca=W(k,1);ia=!(128&~ca[0]);G=127&ca[0];w=G<126?3:126===G?1:2}else if(1===w){if(l(k)<2)break;ca=W(k,2);G=(new DataView(ca.buffer,ca.byteOffset,ca.length)).getUint16(0);w=3}else if(2===w){if(l(k)<8)break;ca=W(k,8);ca=new DataView(ca.buffer,ca.byteOffset,ca.length);var B=ca.getUint32(0);if(B>2097151){ta.enqueue(g);break}G=B*4294967296+ca.getUint32(4);w=3}else{if(l(k)<G)break;ca=W(k,G);ta.enqueue(S(ia?ca:Ja.decode(ca),cb));w=0}if(0===G||G>Ua){ta.enqueue(g);
264
- break}}}})}(Number.MAX_SAFE_INTEGER,C.socket.binaryType),Aa=P.readable.pipeThrough(ma).getReader();ma=aa();ma.readable.pipeTo(P.writable);C.C=ma.writable.getWriter();!function cb(){Aa.read().then(function(k){var w=k.value;k.done||(C.onPacket(w),cb())}).catch(function(k){})}();P={type:'open'};C.query.sid&&(P.data='{"sid":"'.concat(C.query.sid,'"}'));C.C.write(P).then(function(){return C.onOpen()})})})},ja.write=function(C){var P=this;this.writable=!1;for(var ma=function(){var Ua=Aa===C.length-1;P.C.write(C[Aa]).then(function(){Ua&&
265
- Ea(function(){P.writable=!0;P.emitReserved('drain')},P.setTimeoutFn)})},Aa=0;Aa<C.length;Aa++)ma()},ja.doClose=function(){var C;null===(C=this.M)||void 0===C||C.close()},q(xa,[{key:'name',get:function(){return'webtransport'}}])}(oa);var Kb={websocket:Ga,webtransport:oa,polling:Ya},Mb=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
266
- pb='source protocol authority userInfo user password host port relative path directory file query anchor'.split(' '),gb='function'==typeof addEventListener&&'function'==typeof removeEventListener,Ia=[];gb&&addEventListener('offline',function(){Ia.forEach(function(da){return da()})},!1);var Gb=function(da){function xa(C,P){var ma;((ma=da.call(this)||this).binaryType='arraybuffer',ma.writeBuffer=[],ma.L=0,ma.R=-1,ma.D=-1,ma.P=-1,ma.I=1/0,C&&'object'===m(C)&&(P=C,C=null),C)?(C=y(C),P.hostname=C.host,
267
- P.secure='https'===C.protocol||'wss'===C.protocol,P.port=C.port,C.query&&(P.query=C.query)):P.host&&(P.hostname=y(P.host).host);return Z(ma,P),ma.secure=null!=P.secure?P.secure:'undefined'!=typeof location&&'https:'===location.protocol,P.hostname&&!P.port&&(P.port=ma.secure?'443':'80'),ma.hostname=P.hostname||('undefined'!=typeof location?location.hostname:'localhost'),ma.port=P.port||('undefined'!=typeof location&&location.port?location.port:ma.secure?'443':'80'),ma.transports=[],ma.$={},P.transports.forEach(function(Aa){var Ua=
268
- Aa.prototype.name;ma.transports.push(Ua);ma.$[Ua]=Aa}),ma.opts=F({path:'/engine.io',agent:!1,withCredentials:!1,upgrade:!0,timestampParam:'t',rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},P),ma.opts.path=ma.opts.path.replace(/\/$/,'')+(ma.opts.addTrailingSlash?'/':''),'string'==typeof ma.opts.query&&(ma.opts.query=function(Aa){var Ua={};Aa=Aa.split('&');for(var cb=0,k=Aa.length;cb<k;cb++){var w=Aa[cb].split('=');
269
- Ua[decodeURIComponent(w[0])]=decodeURIComponent(w[1])}return Ua}(ma.opts.query)),gb&&(ma.opts.closeOnBeforeunload&&(ma.q=function(){ma.transport&&(ma.transport.removeAllListeners(),ma.transport.close())},addEventListener('beforeunload',ma.q,!1)),'localhost'!==ma.hostname&&(ma.N=function(){ma.V('transport close',{description:'network connection lost'})},Ia.push(ma.N))),ma.opts.withCredentials&&(ma.X=void 0),ma.H(),ma}N(xa,da);var ja=xa.prototype;return ja.createTransport=function(C){var P=F({},this.opts.query);
270
- P.EIO=4;P.transport=C;this.id&&(P.sid=this.id);P=F({},this.opts,{query:P,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[C]);return new this.$[C](P)},ja.H=function(){var C=this;if(0!==this.transports.length){var P=this.opts.rememberUpgrade&&xa.priorWebsocketSuccess&&-1!==this.transports.indexOf('websocket')?'websocket':this.transports[0];this.readyState='opening';P=this.createTransport(P);P.open();this.setTransport(P)}else this.setTimeoutFn(function(){C.emitReserved('error',
271
- 'No transports available')},0)},ja.setTransport=function(C){var P=this;this.transport&&this.transport.removeAllListeners();this.transport=C;C.on('drain',this.F.bind(this)).on('packet',this.G.bind(this)).on('error',this.O.bind(this)).on('close',function(ma){return P.V('transport close',ma)})},ja.onOpen=function(){this.readyState='open';xa.priorWebsocketSuccess='websocket'===this.transport.name;this.emitReserved('open');this.flush()},ja.G=function(C){if('opening'===this.readyState||'open'===this.readyState||
272
- 'closing'===this.readyState)switch(this.emitReserved('packet',C),this.emitReserved('heartbeat'),C.type){case 'open':this.onHandshake(JSON.parse(C.data));break;case 'ping':this.J('pong');this.emitReserved('ping');this.emitReserved('pong');this.W();break;case 'error':var P=Error('server error');P.code=C.data;this.O(P);break;case 'message':this.emitReserved('data',C.data),this.emitReserved('message',C.data)}},ja.onHandshake=function(C){this.emitReserved('handshake',C);this.id=C.sid;this.transport.query.sid=
273
- C.sid;this.R=C.pingInterval;this.D=C.pingTimeout;this.P=C.maxPayload;this.onOpen();'closed'!==this.readyState&&this.W()},ja.W=function(){var C=this;this.clearTimeoutFn(this.K);var P=this.R+this.D;this.I=Date.now()+P;this.K=this.setTimeoutFn(function(){C.V('ping timeout')},P);this.opts.autoUnref&&this.K.unref()},ja.F=function(){this.writeBuffer.splice(0,this.L);this.L=0;0===this.writeBuffer.length?this.emitReserved('drain'):this.flush()},ja.flush=function(){if('closed'!==this.readyState&&this.transport.writable&&
274
- !this.upgrading&&this.writeBuffer.length){var C=this.Y();this.transport.send(C);this.L=C.length;this.emitReserved('flush')}},ja.Y=function(){if(!(this.P&&'polling'===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;for(var C,P=1,ma=0;ma<this.writeBuffer.length;ma++){if(C=this.writeBuffer[ma].data){if('string'==typeof C){for(var Aa=0,Ua=0,cb=0,k=C.length;cb<k;cb++)(Aa=C.charCodeAt(cb))<128?Ua+=1:Aa<2048?Ua+=2:Aa<55296||Aa>=57344?Ua+=3:(cb++,Ua+=4);C=Ua}else C=Math.ceil(1.33*
275
- (C.byteLength||C.size));P+=C}if(ma>0&&P>this.P)return this.writeBuffer.slice(0,ma);P+=2}return this.writeBuffer},ja.Z=function(){var C=this;if(!this.I)return!0;var P=Date.now()>this.I;return P&&(this.I=0,Ea(function(){C.V('ping timeout')},this.setTimeoutFn)),P},ja.write=function(C,P,ma){return this.J('message',C,P,ma),this},ja.send=function(C,P,ma){return this.J('message',C,P,ma),this},ja.J=function(C,P,ma,Aa){if('function'==typeof P&&(Aa=P,P=void 0),'function'==typeof ma&&(Aa=ma,ma=null),'closing'!==
276
- this.readyState&&'closed'!==this.readyState)(ma=ma||{}).compress=!1!==ma.compress,C={type:C,data:P,options:ma},this.emitReserved('packetCreate',C),this.writeBuffer.push(C),Aa&&this.once('flush',Aa),this.flush()},ja.close=function(){var C=this,P=function(){C.V('forced close');C.transport.close()},ma=function cb(){C.off('upgrade',cb);C.off('upgradeError',cb);P()},Aa=function(){C.once('upgrade',ma);C.once('upgradeError',ma)};return'opening'!==this.readyState&&'open'!==this.readyState||(this.readyState=
277
- 'closing',this.writeBuffer.length?this.once('drain',function(){C.upgrading?Aa():P()}):this.upgrading?Aa():P()),this},ja.O=function(C){if(xa.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&'opening'===this.readyState)return this.transports.shift(),this.H();this.emitReserved('error',C);this.V('transport error',C)},ja.V=function(C,P){if('opening'===this.readyState||'open'===this.readyState||'closing'===this.readyState){if(this.clearTimeoutFn(this.K),this.transport.removeAllListeners('close'),
278
- this.transport.close(),this.transport.removeAllListeners(),gb&&(this.q&&removeEventListener('beforeunload',this.q,!1),this.N)){var ma=Ia.indexOf(this.N);-1!==ma&&Ia.splice(ma,1)}this.readyState='closed';this.id=null;this.emitReserved('close',C,P);this.writeBuffer=[];this.L=0}},xa}(r);Gb.protocol=4;var Jb=function(da){function xa(ja){var C=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};C='object'===m(ja)?ja:C;return(!C.transports||C.transports&&'string'==typeof C.transports[0])&&(C.transports=
279
- (C.transports||['polling','websocket','webtransport']).map(function(P){return Kb[P]}).filter(function(P){return!!P})),da.call(this,ja,C)||this}return N(xa,da),xa}(function(da){function xa(){var C;return(C=da.apply(this,arguments)||this)._=[],C}N(xa,da);var ja=xa.prototype;return ja.onOpen=function(){if(da.prototype.onOpen.call(this),'open'===this.readyState&&this.opts.upgrade)for(var C=0;C<this._.length;C++)this.tt(this._[C])},ja.tt=function(C){function P(){w||(w=!0,ca(),k.close(),k=null)}function ma(){ia('transport closed')}
280
- function Aa(){ia('socket closed')}function Ua(ta){k&&ta.name!==k.name&&P()}var cb=this,k=this.createTransport(C),w=!1;Gb.priorWebsocketSuccess=!1;var G=function(){w||(k.send([{type:'ping',data:'probe'}]),k.once('packet',function(ta){if(!w)if('pong'===ta.type&&'probe'===ta.data){if(cb.upgrading=!0,cb.emitReserved('upgrading',k),k)Gb.priorWebsocketSuccess='websocket'===k.name,cb.transport.pause(function(){w||'closed'!==cb.readyState&&(ca(),cb.setTransport(k),k.send([{type:'upgrade'}]),cb.emitReserved('upgrade',
281
- k),k=null,cb.upgrading=!1,cb.flush())})}else ta=Error('probe error'),ta.transport=k.name,cb.emitReserved('upgradeError',ta)}))},ia=function(ta){ta=Error('probe error: '+ta);ta.transport=k.name;P();cb.emitReserved('upgradeError',ta)},ca=function(){k.removeListener('open',G);k.removeListener('error',ia);k.removeListener('close',ma);cb.off('close',Aa);cb.off('upgrading',Ua)};k.once('open',G);k.once('error',ia);k.once('close',ma);this.once('close',Aa);this.once('upgrading',Ua);-1!==this._.indexOf('webtransport')&&
282
- 'webtransport'!==C?this.setTimeoutFn(function(){w||k.open()},200):k.open()},ja.onHandshake=function(C){this._=this.nt(C.upgrades);da.prototype.onHandshake.call(this,C)},ja.nt=function(C){for(var P=[],ma=0;ma<C.length;ma++)~this.transports.indexOf(C[ma])&&P.push(C[ma]);return P},xa}(Gb));return function(da,xa){return new Jb(da,xa)}});
283
- function BindingHelper(f){var q={};typeof f!='undefined'&&(q=f);q.process=function(F,H,N){if(typeof F=='undefined'||!Array.isArray(F))throw Error('`bindings` must be a defined array');typeof H=='undefined'&&(H=F.length,N=0);if(F[N]){var U=F[N];if(typeof U.call=='undefined')throw Error('`bindings.['+N+'].call` is required !');if(typeof q[U.call]!='function')throw Error('`bindingContext.'+U.call+'` is not a function');var D=U.call;delete U.call;try{if(typeof U.handler!='undefined'){if(!window[U.handler])throw Error('`'+
284
- U.handler+'` could not be reached. You must expose it to the `window` do object before any call.');var m=U.handler;delete U.handler;window[m].apply(this,Object.values(U));U.handler=m}else q[D].apply(this,Object.values(U));U.call=D}catch(E){console.error('BindingHelper encountered error while trying to execute `'+D+'`'+(E.stack||E))}q.process(F,H,N+1)}};return q}define('helpers/binding',[],function(){return BindingHelper});
285
- (function(f,q){typeof exports=='object'&&typeof module!='undefined'?q(exports):typeof define=='function'&&define.amd?define('vendor/gina/psl',['exports'],q):(f=typeof globalThis!='undefined'?globalThis:f||self,q(f.psl={}))})(this,function(f){var q,F;const H=function(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,'default')?l.default:l}(function(){function l(X){throw new RangeError(Y[X]);}function W(X,g){var V=X.split('@');let fa='';V.length>1&&(fa=V[0]+'@',X=V[1]);X=X.replace(T,
286
- '.');X=X.split('.');V=[];let ua=X.length;for(;ua--;)V[ua]=g(X[ua]);g=V.join('.');return fa+g}function r(X){const g=[];let V=0;const fa=X.length;for(;V<fa;){const ua=X.charCodeAt(V++);if(ua>=55296&&ua<=56319&&V<fa){const qa=X.charCodeAt(V++);(qa&64512)==56320?g.push(((ua&1023)<<10)+(qa&1023)+65536):(g.push(ua),V--)}else g.push(ua)}return g}if(F)return q;F=1;const n=/^xn--/,Z=/[^\0-\x7F]/,T=/[\x2E\u3002\uFF0E\uFF61]/g,Y={overflow:'Overflow: input needs wider integers to process','not-basic':'Illegal input >= 0x80 (not a basic code point)',
287
- 'invalid-input':'Invalid input'},v=Math.floor,L=String.fromCharCode,y=function(X,g,V){let fa=0;X=V?v(X/700):X>>1;for(X+=v(X/g);X>455;fa+=36)X=v(X/35);return v(fa+36*X/(X+38))},x=function(X){const g=[],V=X.length;let fa=0,ua=128,qa=72;var K=X.lastIndexOf('-');K<0&&(K=0);for(var ha=0;ha<K;++ha)X.charCodeAt(ha)>=128&&l('not-basic'),g.push(X.charCodeAt(ha));for(K=K>0?K+1:0;K<V;){ha=fa;for(let Ja=1,O=36;;O+=36){K>=V&&l('invalid-input');var oa=X.charCodeAt(K++);oa=oa>=48&&oa<58?26+(oa-48):oa>=65&&oa<91?
288
- oa-65:oa>=97&&oa<123?oa-97:36;oa>=36&&l('invalid-input');oa>v((2147483647-fa)/Ja)&&l('overflow');fa+=oa*Ja;const S=O<=qa?1:O>=qa+26?26:O-qa;if(oa<S)break;oa=36-S;Ja>v(2147483647/oa)&&l('overflow');Ja*=oa}oa=g.length+1;qa=y(fa-ha,oa,ha==0);v(fa/oa)>2147483647-ua&&l('overflow');ua+=v(fa/oa);fa%=oa;g.splice(fa++,0,ua)}return String.fromCodePoint(...g)},R=function(X){const g=[];X=r(X);const V=X.length;let fa=128,ua=0,qa=72;for(var K of X)K<128&&g.push(L(K));let ha=K=g.length;for(K&&g.push('-');ha<V;){var oa=
289
- 2147483647;for(const ya of X)ya>=fa&&ya<oa&&(oa=ya);const S=ha+1;oa-fa>v((2147483647-ua)/S)&&l('overflow');ua+=(oa-fa)*S;fa=oa;for(const ya of X)if(ya<fa&&++ua>2147483647&&l('overflow'),ya===fa){var Ja=ua;for(oa=36;;oa+=36){var O=oa<=qa?1:oa>=qa+26?26:oa-qa;if(Ja<O)break;const ka=Ja-O,Ea=36-O;Ja=g;O+=ka%Ea;Ja.push.call(Ja,L(O+22+75*(O<26)-0));Ja=v(ka/Ea)}g.push(L(Ja+22+75*(Ja<26)-0));qa=y(ua,S,ha===K);ua=0;++ha}++ua;++fa}return g.join('')};return q={version:'2.3.1',ucs2:{decode:r,encode:X=>String.fromCodePoint(...X)},
290
- decode:x,encode:R,toASCII:function(X){return W(X,function(g){return Z.test(g)?'xn--'+R(g):g})},toUnicode:function(X){return W(X,function(g){return n.test(g)?x(g.slice(4).toLowerCase()):g})}},q}()),N='ac com.ac edu.ac gov.ac mil.ac net.ac org.ac ad ae ac.ae co.ae gov.ae mil.ae net.ae org.ae sch.ae aero airline.aero airport.aero accident-investigation.aero accident-prevention.aero aerobatic.aero aeroclub.aero aerodrome.aero agents.aero air-surveillance.aero air-traffic-control.aero aircraft.aero airtraffic.aero ambulance.aero association.aero author.aero ballooning.aero broker.aero caa.aero cargo.aero catering.aero certification.aero championship.aero charter.aero civilaviation.aero club.aero conference.aero consultant.aero consulting.aero control.aero council.aero crew.aero design.aero dgca.aero educator.aero emergency.aero engine.aero engineer.aero entertainment.aero equipment.aero exchange.aero express.aero federation.aero flight.aero freight.aero fuel.aero gliding.aero government.aero groundhandling.aero group.aero hanggliding.aero homebuilt.aero insurance.aero journal.aero journalist.aero leasing.aero logistics.aero magazine.aero maintenance.aero marketplace.aero media.aero microlight.aero modelling.aero navigation.aero parachuting.aero paragliding.aero passenger-association.aero pilot.aero press.aero production.aero recreation.aero repbody.aero res.aero research.aero rotorcraft.aero safety.aero scientist.aero services.aero show.aero skydiving.aero software.aero student.aero taxi.aero trader.aero trading.aero trainer.aero union.aero workinggroup.aero works.aero af com.af edu.af gov.af net.af org.af ag co.ag com.ag net.ag nom.ag org.ag ai com.ai net.ai off.ai org.ai al com.al edu.al gov.al mil.al net.al org.al am co.am com.am commune.am net.am org.am ao co.ao ed.ao edu.ao gov.ao gv.ao it.ao og.ao org.ao pb.ao aq ar bet.ar com.ar coop.ar edu.ar gob.ar gov.ar int.ar mil.ar musica.ar mutual.ar net.ar org.ar senasa.ar tur.ar arpa e164.arpa home.arpa in-addr.arpa ip6.arpa iris.arpa uri.arpa urn.arpa as gov.as asia at ac.at sth.ac.at co.at gv.at or.at au asn.au com.au edu.au gov.au id.au net.au org.au conf.au oz.au act.au nsw.au nt.au qld.au sa.au tas.au vic.au wa.au act.edu.au catholic.edu.au nsw.edu.au nt.edu.au qld.edu.au sa.edu.au tas.edu.au vic.edu.au wa.edu.au qld.gov.au sa.gov.au tas.gov.au vic.gov.au wa.gov.au schools.nsw.edu.au aw com.aw ax az biz.az com.az edu.az gov.az info.az int.az mil.az name.az net.az org.az pp.az pro.az ba com.ba edu.ba gov.ba mil.ba net.ba org.ba bb biz.bb co.bb com.bb edu.bb gov.bb info.bb net.bb org.bb store.bb tv.bb *.bd be ac.be bf gov.bf bg 0.bg 1.bg 2.bg 3.bg 4.bg 5.bg 6.bg 7.bg 8.bg 9.bg a.bg b.bg c.bg d.bg e.bg f.bg g.bg h.bg i.bg j.bg k.bg l.bg m.bg n.bg o.bg p.bg q.bg r.bg s.bg t.bg u.bg v.bg w.bg x.bg y.bg z.bg bh com.bh edu.bh gov.bh net.bh org.bh bi co.bi com.bi edu.bi or.bi org.bi biz bj africa.bj agro.bj architectes.bj assur.bj avocats.bj co.bj com.bj eco.bj econo.bj edu.bj info.bj loisirs.bj money.bj net.bj org.bj ote.bj restaurant.bj resto.bj tourism.bj univ.bj bm com.bm edu.bm gov.bm net.bm org.bm bn com.bn edu.bn gov.bn net.bn org.bn bo com.bo edu.bo gob.bo int.bo mil.bo net.bo org.bo tv.bo web.bo academia.bo agro.bo arte.bo blog.bo bolivia.bo ciencia.bo cooperativa.bo democracia.bo deporte.bo ecologia.bo economia.bo empresa.bo indigena.bo industria.bo info.bo medicina.bo movimiento.bo musica.bo natural.bo nombre.bo noticias.bo patria.bo plurinacional.bo politica.bo profesional.bo pueblo.bo revista.bo salud.bo tecnologia.bo tksat.bo transporte.bo wiki.bo br 9guacu.br abc.br adm.br adv.br agr.br aju.br am.br anani.br aparecida.br app.br arq.br art.br ato.br b.br barueri.br belem.br bet.br bhz.br bib.br bio.br blog.br bmd.br boavista.br bsb.br campinagrande.br campinas.br caxias.br cim.br cng.br cnt.br com.br contagem.br coop.br coz.br cri.br cuiaba.br curitiba.br def.br des.br det.br dev.br ecn.br eco.br edu.br emp.br enf.br eng.br esp.br etc.br eti.br far.br feira.br flog.br floripa.br fm.br fnd.br fortal.br fot.br foz.br fst.br g12.br geo.br ggf.br goiania.br gov.br ac.gov.br al.gov.br am.gov.br ap.gov.br ba.gov.br ce.gov.br df.gov.br es.gov.br go.gov.br ma.gov.br mg.gov.br ms.gov.br mt.gov.br pa.gov.br pb.gov.br pe.gov.br pi.gov.br pr.gov.br rj.gov.br rn.gov.br ro.gov.br rr.gov.br rs.gov.br sc.gov.br se.gov.br sp.gov.br to.gov.br gru.br imb.br ind.br inf.br jab.br jampa.br jdf.br joinville.br jor.br jus.br leg.br leilao.br lel.br log.br londrina.br macapa.br maceio.br manaus.br maringa.br mat.br med.br mil.br morena.br mp.br mus.br natal.br net.br niteroi.br *.nom.br not.br ntr.br odo.br ong.br org.br osasco.br palmas.br poa.br ppg.br pro.br psc.br psi.br pvh.br qsl.br radio.br rec.br recife.br rep.br ribeirao.br rio.br riobranco.br riopreto.br salvador.br sampa.br santamaria.br santoandre.br saobernardo.br saogonca.br seg.br sjc.br slg.br slz.br sorocaba.br srv.br taxi.br tc.br tec.br teo.br the.br tmp.br trd.br tur.br tv.br udi.br vet.br vix.br vlog.br wiki.br zlg.br bs com.bs edu.bs gov.bs net.bs org.bs bt com.bt edu.bt gov.bt net.bt org.bt bv bw co.bw org.bw by gov.by mil.by com.by of.by bz co.bz com.bz edu.bz gov.bz net.bz org.bz ca ab.ca bc.ca mb.ca nb.ca nf.ca nl.ca ns.ca nt.ca nu.ca on.ca pe.ca qc.ca sk.ca yk.ca gc.ca cat cc cd gov.cd cf cg ch ci ac.ci a\u00e9roport.ci asso.ci co.ci com.ci ed.ci edu.ci go.ci gouv.ci int.ci net.ci or.ci org.ci *.ck !www.ck cl co.cl gob.cl gov.cl mil.cl cm co.cm com.cm gov.cm net.cm cn ac.cn com.cn edu.cn gov.cn mil.cn net.cn org.cn \u516c\u53f8.cn \u7db2\u7d61.cn \u7f51\u7edc.cn ah.cn bj.cn cq.cn fj.cn gd.cn gs.cn gx.cn gz.cn ha.cn hb.cn he.cn hi.cn hk.cn hl.cn hn.cn jl.cn js.cn jx.cn ln.cn mo.cn nm.cn nx.cn qh.cn sc.cn sd.cn sh.cn sn.cn sx.cn tj.cn tw.cn xj.cn xz.cn yn.cn zj.cn co com.co edu.co gov.co mil.co net.co nom.co org.co com coop cr ac.cr co.cr ed.cr fi.cr go.cr or.cr sa.cr cu com.cu edu.cu gob.cu inf.cu nat.cu net.cu org.cu cv com.cv edu.cv id.cv int.cv net.cv nome.cv org.cv publ.cv cw com.cw edu.cw net.cw org.cw cx gov.cx cy ac.cy biz.cy com.cy ekloges.cy gov.cy ltd.cy mil.cy net.cy org.cy press.cy pro.cy tm.cy cz de dj dk dm co.dm com.dm edu.dm gov.dm net.dm org.dm do art.do com.do edu.do gob.do gov.do mil.do net.do org.do sld.do web.do dz art.dz asso.dz com.dz edu.dz gov.dz net.dz org.dz pol.dz soc.dz tm.dz ec com.ec edu.ec fin.ec gob.ec gov.ec info.ec k12.ec med.ec mil.ec net.ec org.ec pro.ec edu ee aip.ee com.ee edu.ee fie.ee gov.ee lib.ee med.ee org.ee pri.ee riik.ee eg ac.eg com.eg edu.eg eun.eg gov.eg info.eg me.eg mil.eg name.eg net.eg org.eg sci.eg sport.eg tv.eg *.er es com.es edu.es gob.es nom.es org.es et biz.et com.et edu.et gov.et info.et name.et net.et org.et eu fi aland.fi fj ac.fj biz.fj com.fj gov.fj info.fj mil.fj name.fj net.fj org.fj pro.fj *.fk fm com.fm edu.fm net.fm org.fm fo fr asso.fr com.fr gouv.fr nom.fr prd.fr tm.fr avoues.fr cci.fr greta.fr huissier-justice.fr ga gb gd edu.gd gov.gd ge com.ge edu.ge gov.ge net.ge org.ge pvt.ge school.ge gf gg co.gg net.gg org.gg gh com.gh edu.gh gov.gh mil.gh org.gh gi com.gi edu.gi gov.gi ltd.gi mod.gi org.gi gl co.gl com.gl edu.gl net.gl org.gl gm gn ac.gn com.gn edu.gn gov.gn net.gn org.gn gov gp asso.gp com.gp edu.gp mobi.gp net.gp org.gp gq gr com.gr edu.gr gov.gr net.gr org.gr gs gt com.gt edu.gt gob.gt ind.gt mil.gt net.gt org.gt gu com.gu edu.gu gov.gu guam.gu info.gu net.gu org.gu web.gu gw gy co.gy com.gy edu.gy gov.gy net.gy org.gy hk com.hk edu.hk gov.hk idv.hk net.hk org.hk \u4e2a\u4eba.hk \u500b\u4eba.hk \u516c\u53f8.hk \u653f\u5e9c.hk \u654e\u80b2.hk \u6559\u80b2.hk \u7b87\u4eba.hk \u7d44\u7e54.hk \u7d44\u7ec7.hk \u7db2\u7d61.hk \u7db2\u7edc.hk \u7ec4\u7e54.hk \u7ec4\u7ec7.hk \u7f51\u7d61.hk \u7f51\u7edc.hk hm hn com.hn edu.hn gob.hn mil.hn net.hn org.hn hr com.hr from.hr iz.hr name.hr ht adult.ht art.ht asso.ht com.ht coop.ht edu.ht firm.ht gouv.ht info.ht med.ht net.ht org.ht perso.ht pol.ht pro.ht rel.ht shop.ht hu 2000.hu agrar.hu bolt.hu casino.hu city.hu co.hu erotica.hu erotika.hu film.hu forum.hu games.hu hotel.hu info.hu ingatlan.hu jogasz.hu konyvelo.hu lakas.hu media.hu news.hu org.hu priv.hu reklam.hu sex.hu shop.hu sport.hu suli.hu szex.hu tm.hu tozsde.hu utazas.hu video.hu id ac.id biz.id co.id desa.id go.id mil.id my.id net.id or.id ponpes.id sch.id web.id ie gov.ie il ac.il co.il gov.il idf.il k12.il muni.il net.il org.il \u05d9\u05e9\u05e8\u05d0\u05dc \u05d0\u05e7\u05d3\u05de\u05d9\u05d4.\u05d9\u05e9\u05e8\u05d0\u05dc \u05d9\u05e9\u05d5\u05d1.\u05d9\u05e9\u05e8\u05d0\u05dc \u05e6\u05d4\u05dc.\u05d9\u05e9\u05e8\u05d0\u05dc \u05de\u05de\u05e9\u05dc.\u05d9\u05e9\u05e8\u05d0\u05dc im ac.im co.im ltd.co.im plc.co.im com.im net.im org.im tt.im tv.im in 5g.in 6g.in ac.in ai.in am.in bihar.in biz.in business.in ca.in cn.in co.in com.in coop.in cs.in delhi.in dr.in edu.in er.in firm.in gen.in gov.in gujarat.in ind.in info.in int.in internet.in io.in me.in mil.in net.in nic.in org.in pg.in post.in pro.in res.in travel.in tv.in uk.in up.in us.in info int eu.int io co.io com.io edu.io gov.io mil.io net.io nom.io org.io iq com.iq edu.iq gov.iq mil.iq net.iq org.iq ir ac.ir co.ir gov.ir id.ir net.ir org.ir sch.ir \u0627\u06cc\u0631\u0627\u0646.ir \u0627\u064a\u0631\u0627\u0646.ir is it edu.it gov.it abr.it abruzzo.it aosta-valley.it aostavalley.it bas.it basilicata.it cal.it calabria.it cam.it campania.it emilia-romagna.it emiliaromagna.it emr.it friuli-v-giulia.it friuli-ve-giulia.it friuli-vegiulia.it friuli-venezia-giulia.it friuli-veneziagiulia.it friuli-vgiulia.it friuliv-giulia.it friulive-giulia.it friulivegiulia.it friulivenezia-giulia.it friuliveneziagiulia.it friulivgiulia.it fvg.it laz.it lazio.it lig.it liguria.it lom.it lombardia.it lombardy.it lucania.it mar.it marche.it mol.it molise.it piedmont.it piemonte.it pmn.it pug.it puglia.it sar.it sardegna.it sardinia.it sic.it sicilia.it sicily.it taa.it tos.it toscana.it trentin-sud-tirol.it trentin-s\u00fcd-tirol.it trentin-sudtirol.it trentin-s\u00fcdtirol.it trentin-sued-tirol.it trentin-suedtirol.it trentino.it trentino-a-adige.it trentino-aadige.it trentino-alto-adige.it trentino-altoadige.it trentino-s-tirol.it trentino-stirol.it trentino-sud-tirol.it trentino-s\u00fcd-tirol.it trentino-sudtirol.it trentino-s\u00fcdtirol.it trentino-sued-tirol.it trentino-suedtirol.it trentinoa-adige.it trentinoaadige.it trentinoalto-adige.it trentinoaltoadige.it trentinos-tirol.it trentinostirol.it trentinosud-tirol.it trentinos\u00fcd-tirol.it trentinosudtirol.it trentinos\u00fcdtirol.it trentinosued-tirol.it trentinosuedtirol.it trentinsud-tirol.it trentins\u00fcd-tirol.it trentinsudtirol.it trentins\u00fcdtirol.it trentinsued-tirol.it trentinsuedtirol.it tuscany.it umb.it umbria.it val-d-aosta.it val-daosta.it vald-aosta.it valdaosta.it valle-aosta.it valle-d-aosta.it valle-daosta.it valleaosta.it valled-aosta.it valledaosta.it vallee-aoste.it vall\u00e9e-aoste.it vallee-d-aoste.it vall\u00e9e-d-aoste.it valleeaoste.it vall\u00e9eaoste.it valleedaoste.it vall\u00e9edaoste.it vao.it vda.it ven.it veneto.it ag.it agrigento.it al.it alessandria.it alto-adige.it altoadige.it an.it ancona.it andria-barletta-trani.it andria-trani-barletta.it andriabarlettatrani.it andriatranibarletta.it ao.it aosta.it aoste.it ap.it aq.it aquila.it ar.it arezzo.it ascoli-piceno.it ascolipiceno.it asti.it at.it av.it avellino.it ba.it balsan.it balsan-sudtirol.it balsan-s\u00fcdtirol.it balsan-suedtirol.it bari.it barletta-trani-andria.it barlettatraniandria.it belluno.it benevento.it bergamo.it bg.it bi.it biella.it bl.it bn.it bo.it bologna.it bolzano.it bolzano-altoadige.it bozen.it bozen-sudtirol.it bozen-s\u00fcdtirol.it bozen-suedtirol.it br.it brescia.it brindisi.it bs.it bt.it bulsan.it bulsan-sudtirol.it bulsan-s\u00fcdtirol.it bulsan-suedtirol.it bz.it ca.it cagliari.it caltanissetta.it campidano-medio.it campidanomedio.it campobasso.it carbonia-iglesias.it carboniaiglesias.it carrara-massa.it carraramassa.it caserta.it catania.it catanzaro.it cb.it ce.it cesena-forli.it cesena-forl\u00ec.it cesenaforli.it cesenaforl\u00ec.it ch.it chieti.it ci.it cl.it cn.it co.it como.it cosenza.it cr.it cremona.it crotone.it cs.it ct.it cuneo.it cz.it dell-ogliastra.it dellogliastra.it en.it enna.it fc.it fe.it fermo.it ferrara.it fg.it fi.it firenze.it florence.it fm.it foggia.it forli-cesena.it forl\u00ec-cesena.it forlicesena.it forl\u00eccesena.it fr.it frosinone.it ge.it genoa.it genova.it go.it gorizia.it gr.it grosseto.it iglesias-carbonia.it iglesiascarbonia.it im.it imperia.it is.it isernia.it kr.it la-spezia.it laquila.it laspezia.it latina.it lc.it le.it lecce.it lecco.it li.it livorno.it lo.it lodi.it lt.it lu.it lucca.it macerata.it mantova.it massa-carrara.it massacarrara.it matera.it mb.it mc.it me.it medio-campidano.it mediocampidano.it messina.it mi.it milan.it milano.it mn.it mo.it modena.it monza.it monza-brianza.it monza-e-della-brianza.it monzabrianza.it monzaebrianza.it monzaedellabrianza.it ms.it mt.it na.it naples.it napoli.it no.it novara.it nu.it nuoro.it og.it ogliastra.it olbia-tempio.it olbiatempio.it or.it oristano.it ot.it pa.it padova.it padua.it palermo.it parma.it pavia.it pc.it pd.it pe.it perugia.it pesaro-urbino.it pesarourbino.it pescara.it pg.it pi.it piacenza.it pisa.it pistoia.it pn.it po.it pordenone.it potenza.it pr.it prato.it pt.it pu.it pv.it pz.it ra.it ragusa.it ravenna.it rc.it re.it reggio-calabria.it reggio-emilia.it reggiocalabria.it reggioemilia.it rg.it ri.it rieti.it rimini.it rm.it rn.it ro.it roma.it rome.it rovigo.it sa.it salerno.it sassari.it savona.it si.it siena.it siracusa.it so.it sondrio.it sp.it sr.it ss.it s\u00fcdtirol.it suedtirol.it sv.it ta.it taranto.it te.it tempio-olbia.it tempioolbia.it teramo.it terni.it tn.it to.it torino.it tp.it tr.it trani-andria-barletta.it trani-barletta-andria.it traniandriabarletta.it tranibarlettaandria.it trapani.it trento.it treviso.it trieste.it ts.it turin.it tv.it ud.it udine.it urbino-pesaro.it urbinopesaro.it va.it varese.it vb.it vc.it ve.it venezia.it venice.it verbania.it vercelli.it verona.it vi.it vibo-valentia.it vibovalentia.it vicenza.it viterbo.it vr.it vs.it vt.it vv.it je co.je net.je org.je *.jm jo agri.jo ai.jo com.jo edu.jo eng.jo fm.jo gov.jo mil.jo net.jo org.jo per.jo phd.jo sch.jo tv.jo jobs jp ac.jp ad.jp co.jp ed.jp go.jp gr.jp lg.jp ne.jp or.jp aichi.jp akita.jp aomori.jp chiba.jp ehime.jp fukui.jp fukuoka.jp fukushima.jp gifu.jp gunma.jp hiroshima.jp hokkaido.jp hyogo.jp ibaraki.jp ishikawa.jp iwate.jp kagawa.jp kagoshima.jp kanagawa.jp kochi.jp kumamoto.jp kyoto.jp mie.jp miyagi.jp miyazaki.jp nagano.jp nagasaki.jp nara.jp niigata.jp oita.jp okayama.jp okinawa.jp osaka.jp saga.jp saitama.jp shiga.jp shimane.jp shizuoka.jp tochigi.jp tokushima.jp tokyo.jp tottori.jp toyama.jp wakayama.jp yamagata.jp yamaguchi.jp yamanashi.jp \u4e09\u91cd.jp \u4eac\u90fd.jp \u4f50\u8cc0.jp \u5175\u5eab.jp \u5317\u6d77\u9053.jp \u5343\u8449.jp \u548c\u6b4c\u5c71.jp \u57fc\u7389.jp \u5927\u5206.jp \u5927\u962a.jp \u5948\u826f.jp \u5bae\u57ce.jp \u5bae\u5d0e.jp \u5bcc\u5c71.jp \u5c71\u53e3.jp \u5c71\u5f62.jp \u5c71\u68a8.jp \u5c90\u961c.jp \u5ca1\u5c71.jp \u5ca9\u624b.jp \u5cf6\u6839.jp \u5e83\u5cf6.jp \u5fb3\u5cf6.jp \u611b\u5a9b.jp \u611b\u77e5.jp \u65b0\u6f5f.jp \u6771\u4eac.jp \u6803\u6728.jp \u6c96\u7e04.jp \u6ecb\u8cc0.jp \u718a\u672c.jp \u77f3\u5ddd.jp \u795e\u5948\u5ddd.jp \u798f\u4e95.jp \u798f\u5ca1.jp \u798f\u5cf6.jp \u79cb\u7530.jp \u7fa4\u99ac.jp \u8328\u57ce.jp \u9577\u5d0e.jp \u9577\u91ce.jp \u9752\u68ee.jp \u9759\u5ca1.jp \u9999\u5ddd.jp \u9ad8\u77e5.jp \u9ce5\u53d6.jp \u9e7f\u5150\u5cf6.jp *.kawasaki.jp !city.kawasaki.jp *.kitakyushu.jp !city.kitakyushu.jp *.kobe.jp !city.kobe.jp *.nagoya.jp !city.nagoya.jp *.sapporo.jp !city.sapporo.jp *.sendai.jp !city.sendai.jp *.yokohama.jp !city.yokohama.jp aisai.aichi.jp ama.aichi.jp anjo.aichi.jp asuke.aichi.jp chiryu.aichi.jp chita.aichi.jp fuso.aichi.jp gamagori.aichi.jp handa.aichi.jp hazu.aichi.jp hekinan.aichi.jp higashiura.aichi.jp ichinomiya.aichi.jp inazawa.aichi.jp inuyama.aichi.jp isshiki.aichi.jp iwakura.aichi.jp kanie.aichi.jp kariya.aichi.jp kasugai.aichi.jp kira.aichi.jp kiyosu.aichi.jp komaki.aichi.jp konan.aichi.jp kota.aichi.jp mihama.aichi.jp miyoshi.aichi.jp nishio.aichi.jp nisshin.aichi.jp obu.aichi.jp oguchi.aichi.jp oharu.aichi.jp okazaki.aichi.jp owariasahi.aichi.jp seto.aichi.jp shikatsu.aichi.jp shinshiro.aichi.jp shitara.aichi.jp tahara.aichi.jp takahama.aichi.jp tobishima.aichi.jp toei.aichi.jp togo.aichi.jp tokai.aichi.jp tokoname.aichi.jp toyoake.aichi.jp toyohashi.aichi.jp toyokawa.aichi.jp toyone.aichi.jp toyota.aichi.jp tsushima.aichi.jp yatomi.aichi.jp akita.akita.jp daisen.akita.jp fujisato.akita.jp gojome.akita.jp hachirogata.akita.jp happou.akita.jp higashinaruse.akita.jp honjo.akita.jp honjyo.akita.jp ikawa.akita.jp kamikoani.akita.jp kamioka.akita.jp katagami.akita.jp kazuno.akita.jp kitaakita.akita.jp kosaka.akita.jp kyowa.akita.jp misato.akita.jp mitane.akita.jp moriyoshi.akita.jp nikaho.akita.jp noshiro.akita.jp odate.akita.jp oga.akita.jp ogata.akita.jp semboku.akita.jp yokote.akita.jp yurihonjo.akita.jp aomori.aomori.jp gonohe.aomori.jp hachinohe.aomori.jp hashikami.aomori.jp hiranai.aomori.jp hirosaki.aomori.jp itayanagi.aomori.jp kuroishi.aomori.jp misawa.aomori.jp mutsu.aomori.jp nakadomari.aomori.jp noheji.aomori.jp oirase.aomori.jp owani.aomori.jp rokunohe.aomori.jp sannohe.aomori.jp shichinohe.aomori.jp shingo.aomori.jp takko.aomori.jp towada.aomori.jp tsugaru.aomori.jp tsuruta.aomori.jp abiko.chiba.jp asahi.chiba.jp chonan.chiba.jp chosei.chiba.jp choshi.chiba.jp chuo.chiba.jp funabashi.chiba.jp futtsu.chiba.jp hanamigawa.chiba.jp ichihara.chiba.jp ichikawa.chiba.jp ichinomiya.chiba.jp inzai.chiba.jp isumi.chiba.jp kamagaya.chiba.jp kamogawa.chiba.jp kashiwa.chiba.jp katori.chiba.jp katsuura.chiba.jp kimitsu.chiba.jp kisarazu.chiba.jp kozaki.chiba.jp kujukuri.chiba.jp kyonan.chiba.jp matsudo.chiba.jp midori.chiba.jp mihama.chiba.jp minamiboso.chiba.jp mobara.chiba.jp mutsuzawa.chiba.jp nagara.chiba.jp nagareyama.chiba.jp narashino.chiba.jp narita.chiba.jp noda.chiba.jp oamishirasato.chiba.jp omigawa.chiba.jp onjuku.chiba.jp otaki.chiba.jp sakae.chiba.jp sakura.chiba.jp shimofusa.chiba.jp shirako.chiba.jp shiroi.chiba.jp shisui.chiba.jp sodegaura.chiba.jp sosa.chiba.jp tako.chiba.jp tateyama.chiba.jp togane.chiba.jp tohnosho.chiba.jp tomisato.chiba.jp urayasu.chiba.jp yachimata.chiba.jp yachiyo.chiba.jp yokaichiba.chiba.jp yokoshibahikari.chiba.jp yotsukaido.chiba.jp ainan.ehime.jp honai.ehime.jp ikata.ehime.jp imabari.ehime.jp iyo.ehime.jp kamijima.ehime.jp kihoku.ehime.jp kumakogen.ehime.jp masaki.ehime.jp matsuno.ehime.jp matsuyama.ehime.jp namikata.ehime.jp niihama.ehime.jp ozu.ehime.jp saijo.ehime.jp seiyo.ehime.jp shikokuchuo.ehime.jp tobe.ehime.jp toon.ehime.jp uchiko.ehime.jp uwajima.ehime.jp yawatahama.ehime.jp echizen.fukui.jp eiheiji.fukui.jp fukui.fukui.jp ikeda.fukui.jp katsuyama.fukui.jp mihama.fukui.jp minamiechizen.fukui.jp obama.fukui.jp ohi.fukui.jp ono.fukui.jp sabae.fukui.jp sakai.fukui.jp takahama.fukui.jp tsuruga.fukui.jp wakasa.fukui.jp ashiya.fukuoka.jp buzen.fukuoka.jp chikugo.fukuoka.jp chikuho.fukuoka.jp chikujo.fukuoka.jp chikushino.fukuoka.jp chikuzen.fukuoka.jp chuo.fukuoka.jp dazaifu.fukuoka.jp fukuchi.fukuoka.jp hakata.fukuoka.jp higashi.fukuoka.jp hirokawa.fukuoka.jp hisayama.fukuoka.jp iizuka.fukuoka.jp inatsuki.fukuoka.jp kaho.fukuoka.jp kasuga.fukuoka.jp kasuya.fukuoka.jp kawara.fukuoka.jp keisen.fukuoka.jp koga.fukuoka.jp kurate.fukuoka.jp kurogi.fukuoka.jp kurume.fukuoka.jp minami.fukuoka.jp miyako.fukuoka.jp miyama.fukuoka.jp miyawaka.fukuoka.jp mizumaki.fukuoka.jp munakata.fukuoka.jp nakagawa.fukuoka.jp nakama.fukuoka.jp nishi.fukuoka.jp nogata.fukuoka.jp ogori.fukuoka.jp okagaki.fukuoka.jp okawa.fukuoka.jp oki.fukuoka.jp omuta.fukuoka.jp onga.fukuoka.jp onojo.fukuoka.jp oto.fukuoka.jp saigawa.fukuoka.jp sasaguri.fukuoka.jp shingu.fukuoka.jp shinyoshitomi.fukuoka.jp shonai.fukuoka.jp soeda.fukuoka.jp sue.fukuoka.jp tachiarai.fukuoka.jp tagawa.fukuoka.jp takata.fukuoka.jp toho.fukuoka.jp toyotsu.fukuoka.jp tsuiki.fukuoka.jp ukiha.fukuoka.jp umi.fukuoka.jp usui.fukuoka.jp yamada.fukuoka.jp yame.fukuoka.jp yanagawa.fukuoka.jp yukuhashi.fukuoka.jp aizubange.fukushima.jp aizumisato.fukushima.jp aizuwakamatsu.fukushima.jp asakawa.fukushima.jp bandai.fukushima.jp date.fukushima.jp fukushima.fukushima.jp furudono.fukushima.jp futaba.fukushima.jp hanawa.fukushima.jp higashi.fukushima.jp hirata.fukushima.jp hirono.fukushima.jp iitate.fukushima.jp inawashiro.fukushima.jp ishikawa.fukushima.jp iwaki.fukushima.jp izumizaki.fukushima.jp kagamiishi.fukushima.jp kaneyama.fukushima.jp kawamata.fukushima.jp kitakata.fukushima.jp kitashiobara.fukushima.jp koori.fukushima.jp koriyama.fukushima.jp kunimi.fukushima.jp miharu.fukushima.jp mishima.fukushima.jp namie.fukushima.jp nango.fukushima.jp nishiaizu.fukushima.jp nishigo.fukushima.jp okuma.fukushima.jp omotego.fukushima.jp ono.fukushima.jp otama.fukushima.jp samegawa.fukushima.jp shimogo.fukushima.jp shirakawa.fukushima.jp showa.fukushima.jp soma.fukushima.jp sukagawa.fukushima.jp taishin.fukushima.jp tamakawa.fukushima.jp tanagura.fukushima.jp tenei.fukushima.jp yabuki.fukushima.jp yamato.fukushima.jp yamatsuri.fukushima.jp yanaizu.fukushima.jp yugawa.fukushima.jp anpachi.gifu.jp ena.gifu.jp gifu.gifu.jp ginan.gifu.jp godo.gifu.jp gujo.gifu.jp hashima.gifu.jp hichiso.gifu.jp hida.gifu.jp higashishirakawa.gifu.jp ibigawa.gifu.jp ikeda.gifu.jp kakamigahara.gifu.jp kani.gifu.jp kasahara.gifu.jp kasamatsu.gifu.jp kawaue.gifu.jp kitagata.gifu.jp mino.gifu.jp minokamo.gifu.jp mitake.gifu.jp mizunami.gifu.jp motosu.gifu.jp nakatsugawa.gifu.jp ogaki.gifu.jp sakahogi.gifu.jp seki.gifu.jp sekigahara.gifu.jp shirakawa.gifu.jp tajimi.gifu.jp takayama.gifu.jp tarui.gifu.jp toki.gifu.jp tomika.gifu.jp wanouchi.gifu.jp yamagata.gifu.jp yaotsu.gifu.jp yoro.gifu.jp annaka.gunma.jp chiyoda.gunma.jp fujioka.gunma.jp higashiagatsuma.gunma.jp isesaki.gunma.jp itakura.gunma.jp kanna.gunma.jp kanra.gunma.jp katashina.gunma.jp kawaba.gunma.jp kiryu.gunma.jp kusatsu.gunma.jp maebashi.gunma.jp meiwa.gunma.jp midori.gunma.jp minakami.gunma.jp naganohara.gunma.jp nakanojo.gunma.jp nanmoku.gunma.jp numata.gunma.jp oizumi.gunma.jp ora.gunma.jp ota.gunma.jp shibukawa.gunma.jp shimonita.gunma.jp shinto.gunma.jp showa.gunma.jp takasaki.gunma.jp takayama.gunma.jp tamamura.gunma.jp tatebayashi.gunma.jp tomioka.gunma.jp tsukiyono.gunma.jp tsumagoi.gunma.jp ueno.gunma.jp yoshioka.gunma.jp asaminami.hiroshima.jp daiwa.hiroshima.jp etajima.hiroshima.jp fuchu.hiroshima.jp fukuyama.hiroshima.jp hatsukaichi.hiroshima.jp higashihiroshima.hiroshima.jp hongo.hiroshima.jp jinsekikogen.hiroshima.jp kaita.hiroshima.jp kui.hiroshima.jp kumano.hiroshima.jp kure.hiroshima.jp mihara.hiroshima.jp miyoshi.hiroshima.jp naka.hiroshima.jp onomichi.hiroshima.jp osakikamijima.hiroshima.jp otake.hiroshima.jp saka.hiroshima.jp sera.hiroshima.jp seranishi.hiroshima.jp shinichi.hiroshima.jp shobara.hiroshima.jp takehara.hiroshima.jp abashiri.hokkaido.jp abira.hokkaido.jp aibetsu.hokkaido.jp akabira.hokkaido.jp akkeshi.hokkaido.jp asahikawa.hokkaido.jp ashibetsu.hokkaido.jp ashoro.hokkaido.jp assabu.hokkaido.jp atsuma.hokkaido.jp bibai.hokkaido.jp biei.hokkaido.jp bifuka.hokkaido.jp bihoro.hokkaido.jp biratori.hokkaido.jp chippubetsu.hokkaido.jp chitose.hokkaido.jp date.hokkaido.jp ebetsu.hokkaido.jp embetsu.hokkaido.jp eniwa.hokkaido.jp erimo.hokkaido.jp esan.hokkaido.jp esashi.hokkaido.jp fukagawa.hokkaido.jp fukushima.hokkaido.jp furano.hokkaido.jp furubira.hokkaido.jp haboro.hokkaido.jp hakodate.hokkaido.jp hamatonbetsu.hokkaido.jp hidaka.hokkaido.jp higashikagura.hokkaido.jp higashikawa.hokkaido.jp hiroo.hokkaido.jp hokuryu.hokkaido.jp hokuto.hokkaido.jp honbetsu.hokkaido.jp horokanai.hokkaido.jp horonobe.hokkaido.jp ikeda.hokkaido.jp imakane.hokkaido.jp ishikari.hokkaido.jp iwamizawa.hokkaido.jp iwanai.hokkaido.jp kamifurano.hokkaido.jp kamikawa.hokkaido.jp kamishihoro.hokkaido.jp kamisunagawa.hokkaido.jp kamoenai.hokkaido.jp kayabe.hokkaido.jp kembuchi.hokkaido.jp kikonai.hokkaido.jp kimobetsu.hokkaido.jp kitahiroshima.hokkaido.jp kitami.hokkaido.jp kiyosato.hokkaido.jp koshimizu.hokkaido.jp kunneppu.hokkaido.jp kuriyama.hokkaido.jp kuromatsunai.hokkaido.jp kushiro.hokkaido.jp kutchan.hokkaido.jp kyowa.hokkaido.jp mashike.hokkaido.jp matsumae.hokkaido.jp mikasa.hokkaido.jp minamifurano.hokkaido.jp mombetsu.hokkaido.jp moseushi.hokkaido.jp mukawa.hokkaido.jp muroran.hokkaido.jp naie.hokkaido.jp nakagawa.hokkaido.jp nakasatsunai.hokkaido.jp nakatombetsu.hokkaido.jp nanae.hokkaido.jp nanporo.hokkaido.jp nayoro.hokkaido.jp nemuro.hokkaido.jp niikappu.hokkaido.jp niki.hokkaido.jp nishiokoppe.hokkaido.jp noboribetsu.hokkaido.jp numata.hokkaido.jp obihiro.hokkaido.jp obira.hokkaido.jp oketo.hokkaido.jp okoppe.hokkaido.jp otaru.hokkaido.jp otobe.hokkaido.jp otofuke.hokkaido.jp otoineppu.hokkaido.jp oumu.hokkaido.jp ozora.hokkaido.jp pippu.hokkaido.jp rankoshi.hokkaido.jp rebun.hokkaido.jp rikubetsu.hokkaido.jp rishiri.hokkaido.jp rishirifuji.hokkaido.jp saroma.hokkaido.jp sarufutsu.hokkaido.jp shakotan.hokkaido.jp shari.hokkaido.jp shibecha.hokkaido.jp shibetsu.hokkaido.jp shikabe.hokkaido.jp shikaoi.hokkaido.jp shimamaki.hokkaido.jp shimizu.hokkaido.jp shimokawa.hokkaido.jp shinshinotsu.hokkaido.jp shintoku.hokkaido.jp shiranuka.hokkaido.jp shiraoi.hokkaido.jp shiriuchi.hokkaido.jp sobetsu.hokkaido.jp sunagawa.hokkaido.jp taiki.hokkaido.jp takasu.hokkaido.jp takikawa.hokkaido.jp takinoue.hokkaido.jp teshikaga.hokkaido.jp tobetsu.hokkaido.jp tohma.hokkaido.jp tomakomai.hokkaido.jp tomari.hokkaido.jp toya.hokkaido.jp toyako.hokkaido.jp toyotomi.hokkaido.jp toyoura.hokkaido.jp tsubetsu.hokkaido.jp tsukigata.hokkaido.jp urakawa.hokkaido.jp urausu.hokkaido.jp uryu.hokkaido.jp utashinai.hokkaido.jp wakkanai.hokkaido.jp wassamu.hokkaido.jp yakumo.hokkaido.jp yoichi.hokkaido.jp aioi.hyogo.jp akashi.hyogo.jp ako.hyogo.jp amagasaki.hyogo.jp aogaki.hyogo.jp asago.hyogo.jp ashiya.hyogo.jp awaji.hyogo.jp fukusaki.hyogo.jp goshiki.hyogo.jp harima.hyogo.jp himeji.hyogo.jp ichikawa.hyogo.jp inagawa.hyogo.jp itami.hyogo.jp kakogawa.hyogo.jp kamigori.hyogo.jp kamikawa.hyogo.jp kasai.hyogo.jp kasuga.hyogo.jp kawanishi.hyogo.jp miki.hyogo.jp minamiawaji.hyogo.jp nishinomiya.hyogo.jp nishiwaki.hyogo.jp ono.hyogo.jp sanda.hyogo.jp sannan.hyogo.jp sasayama.hyogo.jp sayo.hyogo.jp shingu.hyogo.jp shinonsen.hyogo.jp shiso.hyogo.jp sumoto.hyogo.jp taishi.hyogo.jp taka.hyogo.jp takarazuka.hyogo.jp takasago.hyogo.jp takino.hyogo.jp tamba.hyogo.jp tatsuno.hyogo.jp toyooka.hyogo.jp yabu.hyogo.jp yashiro.hyogo.jp yoka.hyogo.jp yokawa.hyogo.jp ami.ibaraki.jp asahi.ibaraki.jp bando.ibaraki.jp chikusei.ibaraki.jp daigo.ibaraki.jp fujishiro.ibaraki.jp hitachi.ibaraki.jp hitachinaka.ibaraki.jp hitachiomiya.ibaraki.jp hitachiota.ibaraki.jp ibaraki.ibaraki.jp ina.ibaraki.jp inashiki.ibaraki.jp itako.ibaraki.jp iwama.ibaraki.jp joso.ibaraki.jp kamisu.ibaraki.jp kasama.ibaraki.jp kashima.ibaraki.jp kasumigaura.ibaraki.jp koga.ibaraki.jp miho.ibaraki.jp mito.ibaraki.jp moriya.ibaraki.jp naka.ibaraki.jp namegata.ibaraki.jp oarai.ibaraki.jp ogawa.ibaraki.jp omitama.ibaraki.jp ryugasaki.ibaraki.jp sakai.ibaraki.jp sakuragawa.ibaraki.jp shimodate.ibaraki.jp shimotsuma.ibaraki.jp shirosato.ibaraki.jp sowa.ibaraki.jp suifu.ibaraki.jp takahagi.ibaraki.jp tamatsukuri.ibaraki.jp tokai.ibaraki.jp tomobe.ibaraki.jp tone.ibaraki.jp toride.ibaraki.jp tsuchiura.ibaraki.jp tsukuba.ibaraki.jp uchihara.ibaraki.jp ushiku.ibaraki.jp yachiyo.ibaraki.jp yamagata.ibaraki.jp yawara.ibaraki.jp yuki.ibaraki.jp anamizu.ishikawa.jp hakui.ishikawa.jp hakusan.ishikawa.jp kaga.ishikawa.jp kahoku.ishikawa.jp kanazawa.ishikawa.jp kawakita.ishikawa.jp komatsu.ishikawa.jp nakanoto.ishikawa.jp nanao.ishikawa.jp nomi.ishikawa.jp nonoichi.ishikawa.jp noto.ishikawa.jp shika.ishikawa.jp suzu.ishikawa.jp tsubata.ishikawa.jp tsurugi.ishikawa.jp uchinada.ishikawa.jp wajima.ishikawa.jp fudai.iwate.jp fujisawa.iwate.jp hanamaki.iwate.jp hiraizumi.iwate.jp hirono.iwate.jp ichinohe.iwate.jp ichinoseki.iwate.jp iwaizumi.iwate.jp iwate.iwate.jp joboji.iwate.jp kamaishi.iwate.jp kanegasaki.iwate.jp karumai.iwate.jp kawai.iwate.jp kitakami.iwate.jp kuji.iwate.jp kunohe.iwate.jp kuzumaki.iwate.jp miyako.iwate.jp mizusawa.iwate.jp morioka.iwate.jp ninohe.iwate.jp noda.iwate.jp ofunato.iwate.jp oshu.iwate.jp otsuchi.iwate.jp rikuzentakata.iwate.jp shiwa.iwate.jp shizukuishi.iwate.jp sumita.iwate.jp tanohata.iwate.jp tono.iwate.jp yahaba.iwate.jp yamada.iwate.jp ayagawa.kagawa.jp higashikagawa.kagawa.jp kanonji.kagawa.jp kotohira.kagawa.jp manno.kagawa.jp marugame.kagawa.jp mitoyo.kagawa.jp naoshima.kagawa.jp sanuki.kagawa.jp tadotsu.kagawa.jp takamatsu.kagawa.jp tonosho.kagawa.jp uchinomi.kagawa.jp utazu.kagawa.jp zentsuji.kagawa.jp akune.kagoshima.jp amami.kagoshima.jp hioki.kagoshima.jp isa.kagoshima.jp isen.kagoshima.jp izumi.kagoshima.jp kagoshima.kagoshima.jp kanoya.kagoshima.jp kawanabe.kagoshima.jp kinko.kagoshima.jp kouyama.kagoshima.jp makurazaki.kagoshima.jp matsumoto.kagoshima.jp minamitane.kagoshima.jp nakatane.kagoshima.jp nishinoomote.kagoshima.jp satsumasendai.kagoshima.jp soo.kagoshima.jp tarumizu.kagoshima.jp yusui.kagoshima.jp aikawa.kanagawa.jp atsugi.kanagawa.jp ayase.kanagawa.jp chigasaki.kanagawa.jp ebina.kanagawa.jp fujisawa.kanagawa.jp hadano.kanagawa.jp hakone.kanagawa.jp hiratsuka.kanagawa.jp isehara.kanagawa.jp kaisei.kanagawa.jp kamakura.kanagawa.jp kiyokawa.kanagawa.jp matsuda.kanagawa.jp minamiashigara.kanagawa.jp miura.kanagawa.jp nakai.kanagawa.jp ninomiya.kanagawa.jp odawara.kanagawa.jp oi.kanagawa.jp oiso.kanagawa.jp sagamihara.kanagawa.jp samukawa.kanagawa.jp tsukui.kanagawa.jp yamakita.kanagawa.jp yamato.kanagawa.jp yokosuka.kanagawa.jp yugawara.kanagawa.jp zama.kanagawa.jp zushi.kanagawa.jp aki.kochi.jp geisei.kochi.jp hidaka.kochi.jp higashitsuno.kochi.jp ino.kochi.jp kagami.kochi.jp kami.kochi.jp kitagawa.kochi.jp kochi.kochi.jp mihara.kochi.jp motoyama.kochi.jp muroto.kochi.jp nahari.kochi.jp nakamura.kochi.jp nankoku.kochi.jp nishitosa.kochi.jp niyodogawa.kochi.jp ochi.kochi.jp okawa.kochi.jp otoyo.kochi.jp otsuki.kochi.jp sakawa.kochi.jp sukumo.kochi.jp susaki.kochi.jp tosa.kochi.jp tosashimizu.kochi.jp toyo.kochi.jp tsuno.kochi.jp umaji.kochi.jp yasuda.kochi.jp yusuhara.kochi.jp amakusa.kumamoto.jp arao.kumamoto.jp aso.kumamoto.jp choyo.kumamoto.jp gyokuto.kumamoto.jp kamiamakusa.kumamoto.jp kikuchi.kumamoto.jp kumamoto.kumamoto.jp mashiki.kumamoto.jp mifune.kumamoto.jp minamata.kumamoto.jp minamioguni.kumamoto.jp nagasu.kumamoto.jp nishihara.kumamoto.jp oguni.kumamoto.jp ozu.kumamoto.jp sumoto.kumamoto.jp takamori.kumamoto.jp uki.kumamoto.jp uto.kumamoto.jp yamaga.kumamoto.jp yamato.kumamoto.jp yatsushiro.kumamoto.jp ayabe.kyoto.jp fukuchiyama.kyoto.jp higashiyama.kyoto.jp ide.kyoto.jp ine.kyoto.jp joyo.kyoto.jp kameoka.kyoto.jp kamo.kyoto.jp kita.kyoto.jp kizu.kyoto.jp kumiyama.kyoto.jp kyotamba.kyoto.jp kyotanabe.kyoto.jp kyotango.kyoto.jp maizuru.kyoto.jp minami.kyoto.jp minamiyamashiro.kyoto.jp miyazu.kyoto.jp muko.kyoto.jp nagaokakyo.kyoto.jp nakagyo.kyoto.jp nantan.kyoto.jp oyamazaki.kyoto.jp sakyo.kyoto.jp seika.kyoto.jp tanabe.kyoto.jp uji.kyoto.jp ujitawara.kyoto.jp wazuka.kyoto.jp yamashina.kyoto.jp yawata.kyoto.jp asahi.mie.jp inabe.mie.jp ise.mie.jp kameyama.mie.jp kawagoe.mie.jp kiho.mie.jp kisosaki.mie.jp kiwa.mie.jp komono.mie.jp kumano.mie.jp kuwana.mie.jp matsusaka.mie.jp meiwa.mie.jp mihama.mie.jp minamiise.mie.jp misugi.mie.jp miyama.mie.jp nabari.mie.jp shima.mie.jp suzuka.mie.jp tado.mie.jp taiki.mie.jp taki.mie.jp tamaki.mie.jp toba.mie.jp tsu.mie.jp udono.mie.jp ureshino.mie.jp watarai.mie.jp yokkaichi.mie.jp furukawa.miyagi.jp higashimatsushima.miyagi.jp ishinomaki.miyagi.jp iwanuma.miyagi.jp kakuda.miyagi.jp kami.miyagi.jp kawasaki.miyagi.jp marumori.miyagi.jp matsushima.miyagi.jp minamisanriku.miyagi.jp misato.miyagi.jp murata.miyagi.jp natori.miyagi.jp ogawara.miyagi.jp ohira.miyagi.jp onagawa.miyagi.jp osaki.miyagi.jp rifu.miyagi.jp semine.miyagi.jp shibata.miyagi.jp shichikashuku.miyagi.jp shikama.miyagi.jp shiogama.miyagi.jp shiroishi.miyagi.jp tagajo.miyagi.jp taiwa.miyagi.jp tome.miyagi.jp tomiya.miyagi.jp wakuya.miyagi.jp watari.miyagi.jp yamamoto.miyagi.jp zao.miyagi.jp aya.miyazaki.jp ebino.miyazaki.jp gokase.miyazaki.jp hyuga.miyazaki.jp kadogawa.miyazaki.jp kawaminami.miyazaki.jp kijo.miyazaki.jp kitagawa.miyazaki.jp kitakata.miyazaki.jp kitaura.miyazaki.jp kobayashi.miyazaki.jp kunitomi.miyazaki.jp kushima.miyazaki.jp mimata.miyazaki.jp miyakonojo.miyazaki.jp miyazaki.miyazaki.jp morotsuka.miyazaki.jp nichinan.miyazaki.jp nishimera.miyazaki.jp nobeoka.miyazaki.jp saito.miyazaki.jp shiiba.miyazaki.jp shintomi.miyazaki.jp takaharu.miyazaki.jp takanabe.miyazaki.jp takazaki.miyazaki.jp tsuno.miyazaki.jp achi.nagano.jp agematsu.nagano.jp anan.nagano.jp aoki.nagano.jp asahi.nagano.jp azumino.nagano.jp chikuhoku.nagano.jp chikuma.nagano.jp chino.nagano.jp fujimi.nagano.jp hakuba.nagano.jp hara.nagano.jp hiraya.nagano.jp iida.nagano.jp iijima.nagano.jp iiyama.nagano.jp iizuna.nagano.jp ikeda.nagano.jp ikusaka.nagano.jp ina.nagano.jp karuizawa.nagano.jp kawakami.nagano.jp kiso.nagano.jp kisofukushima.nagano.jp kitaaiki.nagano.jp komagane.nagano.jp komoro.nagano.jp matsukawa.nagano.jp matsumoto.nagano.jp miasa.nagano.jp minamiaiki.nagano.jp minamimaki.nagano.jp minamiminowa.nagano.jp minowa.nagano.jp miyada.nagano.jp miyota.nagano.jp mochizuki.nagano.jp nagano.nagano.jp nagawa.nagano.jp nagiso.nagano.jp nakagawa.nagano.jp nakano.nagano.jp nozawaonsen.nagano.jp obuse.nagano.jp ogawa.nagano.jp okaya.nagano.jp omachi.nagano.jp omi.nagano.jp ookuwa.nagano.jp ooshika.nagano.jp otaki.nagano.jp otari.nagano.jp sakae.nagano.jp sakaki.nagano.jp saku.nagano.jp sakuho.nagano.jp shimosuwa.nagano.jp shinanomachi.nagano.jp shiojiri.nagano.jp suwa.nagano.jp suzaka.nagano.jp takagi.nagano.jp takamori.nagano.jp takayama.nagano.jp tateshina.nagano.jp tatsuno.nagano.jp togakushi.nagano.jp togura.nagano.jp tomi.nagano.jp ueda.nagano.jp wada.nagano.jp yamagata.nagano.jp yamanouchi.nagano.jp yasaka.nagano.jp yasuoka.nagano.jp chijiwa.nagasaki.jp futsu.nagasaki.jp goto.nagasaki.jp hasami.nagasaki.jp hirado.nagasaki.jp iki.nagasaki.jp isahaya.nagasaki.jp kawatana.nagasaki.jp kuchinotsu.nagasaki.jp matsuura.nagasaki.jp nagasaki.nagasaki.jp obama.nagasaki.jp omura.nagasaki.jp oseto.nagasaki.jp saikai.nagasaki.jp sasebo.nagasaki.jp seihi.nagasaki.jp shimabara.nagasaki.jp shinkamigoto.nagasaki.jp togitsu.nagasaki.jp tsushima.nagasaki.jp unzen.nagasaki.jp ando.nara.jp gose.nara.jp heguri.nara.jp higashiyoshino.nara.jp ikaruga.nara.jp ikoma.nara.jp kamikitayama.nara.jp kanmaki.nara.jp kashiba.nara.jp kashihara.nara.jp katsuragi.nara.jp kawai.nara.jp kawakami.nara.jp kawanishi.nara.jp koryo.nara.jp kurotaki.nara.jp mitsue.nara.jp miyake.nara.jp nara.nara.jp nosegawa.nara.jp oji.nara.jp ouda.nara.jp oyodo.nara.jp sakurai.nara.jp sango.nara.jp shimoichi.nara.jp shimokitayama.nara.jp shinjo.nara.jp soni.nara.jp takatori.nara.jp tawaramoto.nara.jp tenkawa.nara.jp tenri.nara.jp uda.nara.jp yamatokoriyama.nara.jp yamatotakada.nara.jp yamazoe.nara.jp yoshino.nara.jp aga.niigata.jp agano.niigata.jp gosen.niigata.jp itoigawa.niigata.jp izumozaki.niigata.jp joetsu.niigata.jp kamo.niigata.jp kariwa.niigata.jp kashiwazaki.niigata.jp minamiuonuma.niigata.jp mitsuke.niigata.jp muika.niigata.jp murakami.niigata.jp myoko.niigata.jp nagaoka.niigata.jp niigata.niigata.jp ojiya.niigata.jp omi.niigata.jp sado.niigata.jp sanjo.niigata.jp seiro.niigata.jp seirou.niigata.jp sekikawa.niigata.jp shibata.niigata.jp tagami.niigata.jp tainai.niigata.jp tochio.niigata.jp tokamachi.niigata.jp tsubame.niigata.jp tsunan.niigata.jp uonuma.niigata.jp yahiko.niigata.jp yoita.niigata.jp yuzawa.niigata.jp beppu.oita.jp bungoono.oita.jp bungotakada.oita.jp hasama.oita.jp hiji.oita.jp himeshima.oita.jp hita.oita.jp kamitsue.oita.jp kokonoe.oita.jp kuju.oita.jp kunisaki.oita.jp kusu.oita.jp oita.oita.jp saiki.oita.jp taketa.oita.jp tsukumi.oita.jp usa.oita.jp usuki.oita.jp yufu.oita.jp akaiwa.okayama.jp asakuchi.okayama.jp bizen.okayama.jp hayashima.okayama.jp ibara.okayama.jp kagamino.okayama.jp kasaoka.okayama.jp kibichuo.okayama.jp kumenan.okayama.jp kurashiki.okayama.jp maniwa.okayama.jp misaki.okayama.jp nagi.okayama.jp niimi.okayama.jp nishiawakura.okayama.jp okayama.okayama.jp satosho.okayama.jp setouchi.okayama.jp shinjo.okayama.jp shoo.okayama.jp soja.okayama.jp takahashi.okayama.jp tamano.okayama.jp tsuyama.okayama.jp wake.okayama.jp yakage.okayama.jp aguni.okinawa.jp ginowan.okinawa.jp ginoza.okinawa.jp gushikami.okinawa.jp haebaru.okinawa.jp higashi.okinawa.jp hirara.okinawa.jp iheya.okinawa.jp ishigaki.okinawa.jp ishikawa.okinawa.jp itoman.okinawa.jp izena.okinawa.jp kadena.okinawa.jp kin.okinawa.jp kitadaito.okinawa.jp kitanakagusuku.okinawa.jp kumejima.okinawa.jp kunigami.okinawa.jp minamidaito.okinawa.jp motobu.okinawa.jp nago.okinawa.jp naha.okinawa.jp nakagusuku.okinawa.jp nakijin.okinawa.jp nanjo.okinawa.jp nishihara.okinawa.jp ogimi.okinawa.jp okinawa.okinawa.jp onna.okinawa.jp shimoji.okinawa.jp taketomi.okinawa.jp tarama.okinawa.jp tokashiki.okinawa.jp tomigusuku.okinawa.jp tonaki.okinawa.jp urasoe.okinawa.jp uruma.okinawa.jp yaese.okinawa.jp yomitan.okinawa.jp yonabaru.okinawa.jp yonaguni.okinawa.jp zamami.okinawa.jp abeno.osaka.jp chihayaakasaka.osaka.jp chuo.osaka.jp daito.osaka.jp fujiidera.osaka.jp habikino.osaka.jp hannan.osaka.jp higashiosaka.osaka.jp higashisumiyoshi.osaka.jp higashiyodogawa.osaka.jp hirakata.osaka.jp ibaraki.osaka.jp ikeda.osaka.jp izumi.osaka.jp izumiotsu.osaka.jp izumisano.osaka.jp kadoma.osaka.jp kaizuka.osaka.jp kanan.osaka.jp kashiwara.osaka.jp katano.osaka.jp kawachinagano.osaka.jp kishiwada.osaka.jp kita.osaka.jp kumatori.osaka.jp matsubara.osaka.jp minato.osaka.jp minoh.osaka.jp misaki.osaka.jp moriguchi.osaka.jp neyagawa.osaka.jp nishi.osaka.jp nose.osaka.jp osakasayama.osaka.jp sakai.osaka.jp sayama.osaka.jp sennan.osaka.jp settsu.osaka.jp shijonawate.osaka.jp shimamoto.osaka.jp suita.osaka.jp tadaoka.osaka.jp taishi.osaka.jp tajiri.osaka.jp takaishi.osaka.jp takatsuki.osaka.jp tondabayashi.osaka.jp toyonaka.osaka.jp toyono.osaka.jp yao.osaka.jp ariake.saga.jp arita.saga.jp fukudomi.saga.jp genkai.saga.jp hamatama.saga.jp hizen.saga.jp imari.saga.jp kamimine.saga.jp kanzaki.saga.jp karatsu.saga.jp kashima.saga.jp kitagata.saga.jp kitahata.saga.jp kiyama.saga.jp kouhoku.saga.jp kyuragi.saga.jp nishiarita.saga.jp ogi.saga.jp omachi.saga.jp ouchi.saga.jp saga.saga.jp shiroishi.saga.jp taku.saga.jp tara.saga.jp tosu.saga.jp yoshinogari.saga.jp arakawa.saitama.jp asaka.saitama.jp chichibu.saitama.jp fujimi.saitama.jp fujimino.saitama.jp fukaya.saitama.jp hanno.saitama.jp hanyu.saitama.jp hasuda.saitama.jp hatogaya.saitama.jp hatoyama.saitama.jp hidaka.saitama.jp higashichichibu.saitama.jp higashimatsuyama.saitama.jp honjo.saitama.jp ina.saitama.jp iruma.saitama.jp iwatsuki.saitama.jp kamiizumi.saitama.jp kamikawa.saitama.jp kamisato.saitama.jp kasukabe.saitama.jp kawagoe.saitama.jp kawaguchi.saitama.jp kawajima.saitama.jp kazo.saitama.jp kitamoto.saitama.jp koshigaya.saitama.jp kounosu.saitama.jp kuki.saitama.jp kumagaya.saitama.jp matsubushi.saitama.jp minano.saitama.jp misato.saitama.jp miyashiro.saitama.jp miyoshi.saitama.jp moroyama.saitama.jp nagatoro.saitama.jp namegawa.saitama.jp niiza.saitama.jp ogano.saitama.jp ogawa.saitama.jp ogose.saitama.jp okegawa.saitama.jp omiya.saitama.jp otaki.saitama.jp ranzan.saitama.jp ryokami.saitama.jp saitama.saitama.jp sakado.saitama.jp satte.saitama.jp sayama.saitama.jp shiki.saitama.jp shiraoka.saitama.jp soka.saitama.jp sugito.saitama.jp toda.saitama.jp tokigawa.saitama.jp tokorozawa.saitama.jp tsurugashima.saitama.jp urawa.saitama.jp warabi.saitama.jp yashio.saitama.jp yokoze.saitama.jp yono.saitama.jp yorii.saitama.jp yoshida.saitama.jp yoshikawa.saitama.jp yoshimi.saitama.jp aisho.shiga.jp gamo.shiga.jp higashiomi.shiga.jp hikone.shiga.jp koka.shiga.jp konan.shiga.jp kosei.shiga.jp koto.shiga.jp kusatsu.shiga.jp maibara.shiga.jp moriyama.shiga.jp nagahama.shiga.jp nishiazai.shiga.jp notogawa.shiga.jp omihachiman.shiga.jp otsu.shiga.jp ritto.shiga.jp ryuoh.shiga.jp takashima.shiga.jp takatsuki.shiga.jp torahime.shiga.jp toyosato.shiga.jp yasu.shiga.jp akagi.shimane.jp ama.shimane.jp gotsu.shimane.jp hamada.shimane.jp higashiizumo.shimane.jp hikawa.shimane.jp hikimi.shimane.jp izumo.shimane.jp kakinoki.shimane.jp masuda.shimane.jp matsue.shimane.jp misato.shimane.jp nishinoshima.shimane.jp ohda.shimane.jp okinoshima.shimane.jp okuizumo.shimane.jp shimane.shimane.jp tamayu.shimane.jp tsuwano.shimane.jp unnan.shimane.jp yakumo.shimane.jp yasugi.shimane.jp yatsuka.shimane.jp arai.shizuoka.jp atami.shizuoka.jp fuji.shizuoka.jp fujieda.shizuoka.jp fujikawa.shizuoka.jp fujinomiya.shizuoka.jp fukuroi.shizuoka.jp gotemba.shizuoka.jp haibara.shizuoka.jp hamamatsu.shizuoka.jp higashiizu.shizuoka.jp ito.shizuoka.jp iwata.shizuoka.jp izu.shizuoka.jp izunokuni.shizuoka.jp kakegawa.shizuoka.jp kannami.shizuoka.jp kawanehon.shizuoka.jp kawazu.shizuoka.jp kikugawa.shizuoka.jp kosai.shizuoka.jp makinohara.shizuoka.jp matsuzaki.shizuoka.jp minamiizu.shizuoka.jp mishima.shizuoka.jp morimachi.shizuoka.jp nishiizu.shizuoka.jp numazu.shizuoka.jp omaezaki.shizuoka.jp shimada.shizuoka.jp shimizu.shizuoka.jp shimoda.shizuoka.jp shizuoka.shizuoka.jp susono.shizuoka.jp yaizu.shizuoka.jp yoshida.shizuoka.jp ashikaga.tochigi.jp bato.tochigi.jp haga.tochigi.jp ichikai.tochigi.jp iwafune.tochigi.jp kaminokawa.tochigi.jp kanuma.tochigi.jp karasuyama.tochigi.jp kuroiso.tochigi.jp mashiko.tochigi.jp mibu.tochigi.jp moka.tochigi.jp motegi.tochigi.jp nasu.tochigi.jp nasushiobara.tochigi.jp nikko.tochigi.jp nishikata.tochigi.jp nogi.tochigi.jp ohira.tochigi.jp ohtawara.tochigi.jp oyama.tochigi.jp sakura.tochigi.jp sano.tochigi.jp shimotsuke.tochigi.jp shioya.tochigi.jp takanezawa.tochigi.jp tochigi.tochigi.jp tsuga.tochigi.jp ujiie.tochigi.jp utsunomiya.tochigi.jp yaita.tochigi.jp aizumi.tokushima.jp anan.tokushima.jp ichiba.tokushima.jp itano.tokushima.jp kainan.tokushima.jp komatsushima.tokushima.jp matsushige.tokushima.jp mima.tokushima.jp minami.tokushima.jp miyoshi.tokushima.jp mugi.tokushima.jp nakagawa.tokushima.jp naruto.tokushima.jp sanagochi.tokushima.jp shishikui.tokushima.jp tokushima.tokushima.jp wajiki.tokushima.jp adachi.tokyo.jp akiruno.tokyo.jp akishima.tokyo.jp aogashima.tokyo.jp arakawa.tokyo.jp bunkyo.tokyo.jp chiyoda.tokyo.jp chofu.tokyo.jp chuo.tokyo.jp edogawa.tokyo.jp fuchu.tokyo.jp fussa.tokyo.jp hachijo.tokyo.jp hachioji.tokyo.jp hamura.tokyo.jp higashikurume.tokyo.jp higashimurayama.tokyo.jp higashiyamato.tokyo.jp hino.tokyo.jp hinode.tokyo.jp hinohara.tokyo.jp inagi.tokyo.jp itabashi.tokyo.jp katsushika.tokyo.jp kita.tokyo.jp kiyose.tokyo.jp kodaira.tokyo.jp koganei.tokyo.jp kokubunji.tokyo.jp komae.tokyo.jp koto.tokyo.jp kouzushima.tokyo.jp kunitachi.tokyo.jp machida.tokyo.jp meguro.tokyo.jp minato.tokyo.jp mitaka.tokyo.jp mizuho.tokyo.jp musashimurayama.tokyo.jp musashino.tokyo.jp nakano.tokyo.jp nerima.tokyo.jp ogasawara.tokyo.jp okutama.tokyo.jp ome.tokyo.jp oshima.tokyo.jp ota.tokyo.jp setagaya.tokyo.jp shibuya.tokyo.jp shinagawa.tokyo.jp shinjuku.tokyo.jp suginami.tokyo.jp sumida.tokyo.jp tachikawa.tokyo.jp taito.tokyo.jp tama.tokyo.jp toshima.tokyo.jp chizu.tottori.jp hino.tottori.jp kawahara.tottori.jp koge.tottori.jp kotoura.tottori.jp misasa.tottori.jp nanbu.tottori.jp nichinan.tottori.jp sakaiminato.tottori.jp tottori.tottori.jp wakasa.tottori.jp yazu.tottori.jp yonago.tottori.jp asahi.toyama.jp fuchu.toyama.jp fukumitsu.toyama.jp funahashi.toyama.jp himi.toyama.jp imizu.toyama.jp inami.toyama.jp johana.toyama.jp kamiichi.toyama.jp kurobe.toyama.jp nakaniikawa.toyama.jp namerikawa.toyama.jp nanto.toyama.jp nyuzen.toyama.jp oyabe.toyama.jp taira.toyama.jp takaoka.toyama.jp tateyama.toyama.jp toga.toyama.jp tonami.toyama.jp toyama.toyama.jp unazuki.toyama.jp uozu.toyama.jp yamada.toyama.jp arida.wakayama.jp aridagawa.wakayama.jp gobo.wakayama.jp hashimoto.wakayama.jp hidaka.wakayama.jp hirogawa.wakayama.jp inami.wakayama.jp iwade.wakayama.jp kainan.wakayama.jp kamitonda.wakayama.jp katsuragi.wakayama.jp kimino.wakayama.jp kinokawa.wakayama.jp kitayama.wakayama.jp koya.wakayama.jp koza.wakayama.jp kozagawa.wakayama.jp kudoyama.wakayama.jp kushimoto.wakayama.jp mihama.wakayama.jp misato.wakayama.jp nachikatsuura.wakayama.jp shingu.wakayama.jp shirahama.wakayama.jp taiji.wakayama.jp tanabe.wakayama.jp wakayama.wakayama.jp yuasa.wakayama.jp yura.wakayama.jp asahi.yamagata.jp funagata.yamagata.jp higashine.yamagata.jp iide.yamagata.jp kahoku.yamagata.jp kaminoyama.yamagata.jp kaneyama.yamagata.jp kawanishi.yamagata.jp mamurogawa.yamagata.jp mikawa.yamagata.jp murayama.yamagata.jp nagai.yamagata.jp nakayama.yamagata.jp nanyo.yamagata.jp nishikawa.yamagata.jp obanazawa.yamagata.jp oe.yamagata.jp oguni.yamagata.jp ohkura.yamagata.jp oishida.yamagata.jp sagae.yamagata.jp sakata.yamagata.jp sakegawa.yamagata.jp shinjo.yamagata.jp shirataka.yamagata.jp shonai.yamagata.jp takahata.yamagata.jp tendo.yamagata.jp tozawa.yamagata.jp tsuruoka.yamagata.jp yamagata.yamagata.jp yamanobe.yamagata.jp yonezawa.yamagata.jp yuza.yamagata.jp abu.yamaguchi.jp hagi.yamaguchi.jp hikari.yamaguchi.jp hofu.yamaguchi.jp iwakuni.yamaguchi.jp kudamatsu.yamaguchi.jp mitou.yamaguchi.jp nagato.yamaguchi.jp oshima.yamaguchi.jp shimonoseki.yamaguchi.jp shunan.yamaguchi.jp tabuse.yamaguchi.jp tokuyama.yamaguchi.jp toyota.yamaguchi.jp ube.yamaguchi.jp yuu.yamaguchi.jp chuo.yamanashi.jp doshi.yamanashi.jp fuefuki.yamanashi.jp fujikawa.yamanashi.jp fujikawaguchiko.yamanashi.jp fujiyoshida.yamanashi.jp hayakawa.yamanashi.jp hokuto.yamanashi.jp ichikawamisato.yamanashi.jp kai.yamanashi.jp kofu.yamanashi.jp koshu.yamanashi.jp kosuge.yamanashi.jp minami-alps.yamanashi.jp minobu.yamanashi.jp nakamichi.yamanashi.jp nanbu.yamanashi.jp narusawa.yamanashi.jp nirasaki.yamanashi.jp nishikatsura.yamanashi.jp oshino.yamanashi.jp otsuki.yamanashi.jp showa.yamanashi.jp tabayama.yamanashi.jp tsuru.yamanashi.jp uenohara.yamanashi.jp yamanakako.yamanashi.jp yamanashi.yamanashi.jp ke ac.ke co.ke go.ke info.ke me.ke mobi.ke ne.ke or.ke sc.ke kg com.kg edu.kg gov.kg mil.kg net.kg org.kg *.kh ki biz.ki com.ki edu.ki gov.ki info.ki net.ki org.ki km ass.km com.km edu.km gov.km mil.km nom.km org.km prd.km tm.km asso.km coop.km gouv.km medecin.km notaires.km pharmaciens.km presse.km veterinaire.km kn edu.kn gov.kn net.kn org.kn kp com.kp edu.kp gov.kp org.kp rep.kp tra.kp kr ac.kr co.kr es.kr go.kr hs.kr kg.kr mil.kr ms.kr ne.kr or.kr pe.kr re.kr sc.kr busan.kr chungbuk.kr chungnam.kr daegu.kr daejeon.kr gangwon.kr gwangju.kr gyeongbuk.kr gyeonggi.kr gyeongnam.kr incheon.kr jeju.kr jeonbuk.kr jeonnam.kr seoul.kr ulsan.kr kw com.kw edu.kw emb.kw gov.kw ind.kw net.kw org.kw ky com.ky edu.ky net.ky org.ky kz com.kz edu.kz gov.kz mil.kz net.kz org.kz la com.la edu.la gov.la info.la int.la net.la org.la per.la lb com.lb edu.lb gov.lb net.lb org.lb lc co.lc com.lc edu.lc gov.lc net.lc org.lc li lk ac.lk assn.lk com.lk edu.lk gov.lk grp.lk hotel.lk int.lk ltd.lk net.lk ngo.lk org.lk sch.lk soc.lk web.lk lr com.lr edu.lr gov.lr net.lr org.lr ls ac.ls biz.ls co.ls edu.ls gov.ls info.ls net.ls org.ls sc.ls lt gov.lt lu lv asn.lv com.lv conf.lv edu.lv gov.lv id.lv mil.lv net.lv org.lv ly com.ly edu.ly gov.ly id.ly med.ly net.ly org.ly plc.ly sch.ly ma ac.ma co.ma gov.ma net.ma org.ma press.ma mc asso.mc tm.mc md me ac.me co.me edu.me gov.me its.me net.me org.me priv.me mg co.mg com.mg edu.mg gov.mg mil.mg nom.mg org.mg prd.mg mh mil mk com.mk edu.mk gov.mk inf.mk name.mk net.mk org.mk ml com.ml edu.ml gouv.ml gov.ml net.ml org.ml presse.ml *.mm mn edu.mn gov.mn org.mn mo com.mo edu.mo gov.mo net.mo org.mo mobi mp mq mr gov.mr ms com.ms edu.ms gov.ms net.ms org.ms mt com.mt edu.mt net.mt org.mt mu ac.mu co.mu com.mu gov.mu net.mu or.mu org.mu museum mv aero.mv biz.mv com.mv coop.mv edu.mv gov.mv info.mv int.mv mil.mv museum.mv name.mv net.mv org.mv pro.mv mw ac.mw biz.mw co.mw com.mw coop.mw edu.mw gov.mw int.mw net.mw org.mw mx com.mx edu.mx gob.mx net.mx org.mx my biz.my com.my edu.my gov.my mil.my name.my net.my org.my mz ac.mz adv.mz co.mz edu.mz gov.mz mil.mz net.mz org.mz na alt.na co.na com.na gov.na net.na org.na name nc asso.nc nom.nc ne net nf arts.nf com.nf firm.nf info.nf net.nf other.nf per.nf rec.nf store.nf web.nf ng com.ng edu.ng gov.ng i.ng mil.ng mobi.ng name.ng net.ng org.ng sch.ng ni ac.ni biz.ni co.ni com.ni edu.ni gob.ni in.ni info.ni int.ni mil.ni net.ni nom.ni org.ni web.ni nl no fhs.no folkebibl.no fylkesbibl.no idrett.no museum.no priv.no vgs.no dep.no herad.no kommune.no mil.no stat.no aa.no ah.no bu.no fm.no hl.no hm.no jan-mayen.no mr.no nl.no nt.no of.no ol.no oslo.no rl.no sf.no st.no svalbard.no tm.no tr.no va.no vf.no gs.aa.no gs.ah.no gs.bu.no gs.fm.no gs.hl.no gs.hm.no gs.jan-mayen.no gs.mr.no gs.nl.no gs.nt.no gs.of.no gs.ol.no gs.oslo.no gs.rl.no gs.sf.no gs.st.no gs.svalbard.no gs.tm.no gs.tr.no gs.va.no gs.vf.no akrehamn.no \u00e5krehamn.no algard.no \u00e5lg\u00e5rd.no arna.no bronnoysund.no br\u00f8nn\u00f8ysund.no brumunddal.no bryne.no drobak.no dr\u00f8bak.no egersund.no fetsund.no floro.no flor\u00f8.no fredrikstad.no hokksund.no honefoss.no h\u00f8nefoss.no jessheim.no jorpeland.no j\u00f8rpeland.no kirkenes.no kopervik.no krokstadelva.no langevag.no langev\u00e5g.no leirvik.no mjondalen.no mj\u00f8ndalen.no mo-i-rana.no mosjoen.no mosj\u00f8en.no nesoddtangen.no orkanger.no osoyro.no os\u00f8yro.no raholt.no r\u00e5holt.no sandnessjoen.no sandnessj\u00f8en.no skedsmokorset.no slattum.no spjelkavik.no stathelle.no stavern.no stjordalshalsen.no stj\u00f8rdalshalsen.no tananger.no tranby.no vossevangen.no aarborte.no aejrie.no afjord.no \u00e5fjord.no agdenes.no nes.akershus.no aknoluokta.no \u00e1k\u014boluokta.no al.no \u00e5l.no alaheadju.no \u00e1laheadju.no alesund.no \u00e5lesund.no alstahaug.no alta.no \u00e1lt\u00e1.no alvdal.no amli.no \u00e5mli.no amot.no \u00e5mot.no andasuolo.no andebu.no andoy.no and\u00f8y.no ardal.no \u00e5rdal.no aremark.no arendal.no \u00e5s.no aseral.no \u00e5seral.no asker.no askim.no askoy.no ask\u00f8y.no askvoll.no asnes.no \u00e5snes.no audnedaln.no aukra.no aure.no aurland.no aurskog-holand.no aurskog-h\u00f8land.no austevoll.no austrheim.no averoy.no aver\u00f8y.no badaddja.no b\u00e5d\u00e5ddj\u00e5.no b\u00e6rum.no bahcavuotna.no b\u00e1hcavuotna.no bahccavuotna.no b\u00e1hccavuotna.no baidar.no b\u00e1id\u00e1r.no bajddar.no b\u00e1jddar.no balat.no b\u00e1l\u00e1t.no balestrand.no ballangen.no balsfjord.no bamble.no bardu.no barum.no batsfjord.no b\u00e5tsfjord.no bearalvahki.no bearalv\u00e1hki.no beardu.no beiarn.no berg.no bergen.no berlevag.no berlev\u00e5g.no bievat.no biev\u00e1t.no bindal.no birkenes.no bjarkoy.no bjark\u00f8y.no bjerkreim.no bjugn.no bodo.no bod\u00f8.no bokn.no bomlo.no b\u00f8mlo.no bremanger.no bronnoy.no br\u00f8nn\u00f8y.no budejju.no nes.buskerud.no bygland.no bykle.no cahcesuolo.no \u010d\u00e1hcesuolo.no davvenjarga.no davvenj\u00e1rga.no davvesiida.no deatnu.no dielddanuorri.no divtasvuodna.no divttasvuotna.no donna.no d\u00f8nna.no dovre.no drammen.no drangedal.no dyroy.no dyr\u00f8y.no eid.no eidfjord.no eidsberg.no eidskog.no eidsvoll.no eigersund.no elverum.no enebakk.no engerdal.no etne.no etnedal.no evenassi.no even\u00e1\u0161\u0161i.no evenes.no evje-og-hornnes.no farsund.no fauske.no fedje.no fet.no finnoy.no finn\u00f8y.no fitjar.no fjaler.no fjell.no fla.no fl\u00e5.no flakstad.no flatanger.no flekkefjord.no flesberg.no flora.no folldal.no forde.no f\u00f8rde.no forsand.no fosnes.no fr\u00e6na.no frana.no frei.no frogn.no froland.no frosta.no froya.no fr\u00f8ya.no fuoisku.no fuossko.no fusa.no fyresdal.no gaivuotna.no g\u00e1ivuotna.no galsa.no g\u00e1ls\u00e1.no gamvik.no gangaviika.no g\u00e1\u014bgaviika.no gaular.no gausdal.no giehtavuoatna.no gildeskal.no gildesk\u00e5l.no giske.no gjemnes.no gjerdrum.no gjerstad.no gjesdal.no gjovik.no gj\u00f8vik.no gloppen.no gol.no gran.no grane.no granvin.no gratangen.no grimstad.no grong.no grue.no gulen.no guovdageaidnu.no ha.no h\u00e5.no habmer.no h\u00e1bmer.no hadsel.no h\u00e6gebostad.no hagebostad.no halden.no halsa.no hamar.no hamaroy.no hammarfeasta.no h\u00e1mm\u00e1rfeasta.no hammerfest.no hapmir.no h\u00e1pmir.no haram.no hareid.no harstad.no hasvik.no hattfjelldal.no haugesund.no os.hedmark.no valer.hedmark.no v\u00e5ler.hedmark.no hemne.no hemnes.no hemsedal.no hitra.no hjartdal.no hjelmeland.no hobol.no hob\u00f8l.no hof.no hol.no hole.no holmestrand.no holtalen.no holt\u00e5len.no os.hordaland.no hornindal.no horten.no hoyanger.no h\u00f8yanger.no hoylandet.no h\u00f8ylandet.no hurdal.no hurum.no hvaler.no hyllestad.no ibestad.no inderoy.no inder\u00f8y.no iveland.no ivgu.no jevnaker.no jolster.no j\u00f8lster.no jondal.no kafjord.no k\u00e5fjord.no karasjohka.no k\u00e1r\u00e1\u0161johka.no karasjok.no karlsoy.no karmoy.no karm\u00f8y.no kautokeino.no klabu.no kl\u00e6bu.no klepp.no kongsberg.no kongsvinger.no kraanghke.no kr\u00e5anghke.no kragero.no krager\u00f8.no kristiansand.no kristiansund.no krodsherad.no kr\u00f8dsherad.no kv\u00e6fjord.no kv\u00e6nangen.no kvafjord.no kvalsund.no kvam.no kvanangen.no kvinesdal.no kvinnherad.no kviteseid.no kvitsoy.no kvits\u00f8y.no laakesvuemie.no l\u00e6rdal.no lahppi.no l\u00e1hppi.no lardal.no larvik.no lavagis.no lavangen.no leangaviika.no lea\u014bgaviika.no lebesby.no leikanger.no leirfjord.no leka.no leksvik.no lenvik.no lerdal.no lesja.no levanger.no lier.no lierne.no lillehammer.no lillesand.no lindas.no lind\u00e5s.no lindesnes.no loabat.no loab\u00e1t.no lodingen.no l\u00f8dingen.no lom.no loppa.no lorenskog.no l\u00f8renskog.no loten.no l\u00f8ten.no lund.no lunner.no luroy.no lur\u00f8y.no luster.no lyngdal.no lyngen.no malatvuopmi.no m\u00e1latvuopmi.no malselv.no m\u00e5lselv.no malvik.no mandal.no marker.no marnardal.no masfjorden.no masoy.no m\u00e5s\u00f8y.no matta-varjjat.no m\u00e1tta-v\u00e1rjjat.no meland.no meldal.no melhus.no meloy.no mel\u00f8y.no meraker.no mer\u00e5ker.no midsund.no midtre-gauldal.no moareke.no mo\u00e5reke.no modalen.no modum.no molde.no heroy.more-og-romsdal.no sande.more-og-romsdal.no her\u00f8y.m\u00f8re-og-romsdal.no sande.m\u00f8re-og-romsdal.no moskenes.no moss.no mosvik.no muosat.no muos\u00e1t.no naamesjevuemie.no n\u00e5\u00e5mesjevuemie.no n\u00e6r\u00f8y.no namdalseid.no namsos.no namsskogan.no nannestad.no naroy.no narviika.no narvik.no naustdal.no navuotna.no n\u00e1vuotna.no nedre-eiker.no nesna.no nesodden.no nesseby.no nesset.no nissedal.no nittedal.no nord-aurdal.no nord-fron.no nord-odal.no norddal.no nordkapp.no bo.nordland.no b\u00f8.nordland.no heroy.nordland.no her\u00f8y.nordland.no nordre-land.no nordreisa.no nore-og-uvdal.no notodden.no notteroy.no n\u00f8tter\u00f8y.no odda.no oksnes.no \u00f8ksnes.no omasvuotna.no oppdal.no oppegard.no oppeg\u00e5rd.no orkdal.no orland.no \u00f8rland.no orskog.no \u00f8rskog.no orsta.no \u00f8rsta.no osen.no osteroy.no oster\u00f8y.no valer.ostfold.no v\u00e5ler.\u00f8stfold.no ostre-toten.no \u00f8stre-toten.no overhalla.no ovre-eiker.no \u00f8vre-eiker.no oyer.no \u00f8yer.no oygarden.no \u00f8ygarden.no oystre-slidre.no \u00f8ystre-slidre.no porsanger.no porsangu.no pors\u00e1\u014bgu.no porsgrunn.no rade.no r\u00e5de.no radoy.no rad\u00f8y.no r\u00e6lingen.no rahkkeravju.no r\u00e1hkker\u00e1vju.no raisa.no r\u00e1isa.no rakkestad.no ralingen.no rana.no randaberg.no rauma.no rendalen.no rennebu.no rennesoy.no rennes\u00f8y.no rindal.no ringebu.no ringerike.no ringsaker.no risor.no ris\u00f8r.no rissa.no roan.no rodoy.no r\u00f8d\u00f8y.no rollag.no romsa.no romskog.no r\u00f8mskog.no roros.no r\u00f8ros.no rost.no r\u00f8st.no royken.no r\u00f8yken.no royrvik.no r\u00f8yrvik.no ruovat.no rygge.no salangen.no salat.no s\u00e1lat.no s\u00e1l\u00e1t.no saltdal.no samnanger.no sandefjord.no sandnes.no sandoy.no sand\u00f8y.no sarpsborg.no sauda.no sauherad.no sel.no selbu.no selje.no seljord.no siellak.no sigdal.no siljan.no sirdal.no skanit.no sk\u00e1nit.no skanland.no sk\u00e5nland.no skaun.no skedsmo.no ski.no skien.no skierva.no skierv\u00e1.no skiptvet.no skjak.no skj\u00e5k.no skjervoy.no skjerv\u00f8y.no skodje.no smola.no sm\u00f8la.no snaase.no sn\u00e5ase.no snasa.no sn\u00e5sa.no snillfjord.no snoasa.no sogndal.no sogne.no s\u00f8gne.no sokndal.no sola.no solund.no somna.no s\u00f8mna.no sondre-land.no s\u00f8ndre-land.no songdalen.no sor-aurdal.no s\u00f8r-aurdal.no sor-fron.no s\u00f8r-fron.no sor-odal.no s\u00f8r-odal.no sor-varanger.no s\u00f8r-varanger.no sorfold.no s\u00f8rfold.no sorreisa.no s\u00f8rreisa.no sortland.no sorum.no s\u00f8rum.no spydeberg.no stange.no stavanger.no steigen.no steinkjer.no stjordal.no stj\u00f8rdal.no stokke.no stor-elvdal.no stord.no stordal.no storfjord.no strand.no stranda.no stryn.no sula.no suldal.no sund.no sunndal.no surnadal.no sveio.no svelvik.no sykkylven.no tana.no bo.telemark.no b\u00f8.telemark.no time.no tingvoll.no tinn.no tjeldsund.no tjome.no tj\u00f8me.no tokke.no tolga.no tonsberg.no t\u00f8nsberg.no torsken.no tr\u00e6na.no trana.no tranoy.no tran\u00f8y.no troandin.no trogstad.no tr\u00f8gstad.no tromsa.no tromso.no troms\u00f8.no trondheim.no trysil.no tvedestrand.no tydal.no tynset.no tysfjord.no tysnes.no tysv\u00e6r.no tysvar.no ullensaker.no ullensvang.no ulvik.no unjarga.no unj\u00e1rga.no utsira.no vaapste.no vadso.no vads\u00f8.no v\u00e6r\u00f8y.no vaga.no v\u00e5g\u00e5.no vagan.no v\u00e5gan.no vagsoy.no v\u00e5gs\u00f8y.no vaksdal.no valle.no vang.no vanylven.no vardo.no vard\u00f8.no varggat.no v\u00e1rgg\u00e1t.no varoy.no vefsn.no vega.no vegarshei.no veg\u00e5rshei.no vennesla.no verdal.no verran.no vestby.no sande.vestfold.no vestnes.no vestre-slidre.no vestre-toten.no vestvagoy.no vestv\u00e5g\u00f8y.no vevelstad.no vik.no vikna.no vindafjord.no voagat.no volda.no voss.no *.np nr biz.nr com.nr edu.nr gov.nr info.nr net.nr org.nr nu nz ac.nz co.nz cri.nz geek.nz gen.nz govt.nz health.nz iwi.nz kiwi.nz maori.nz m\u0101ori.nz mil.nz net.nz org.nz parliament.nz school.nz om co.om com.om edu.om gov.om med.om museum.om net.om org.om pro.om onion org pa abo.pa ac.pa com.pa edu.pa gob.pa ing.pa med.pa net.pa nom.pa org.pa sld.pa pe com.pe edu.pe gob.pe mil.pe net.pe nom.pe org.pe pf com.pf edu.pf org.pf *.pg ph com.ph edu.ph gov.ph i.ph mil.ph net.ph ngo.ph org.ph pk ac.pk biz.pk com.pk edu.pk fam.pk gkp.pk gob.pk gog.pk gok.pk gon.pk gop.pk gos.pk gov.pk net.pk org.pk web.pk pl com.pl net.pl org.pl agro.pl aid.pl atm.pl auto.pl biz.pl edu.pl gmina.pl gsm.pl info.pl mail.pl media.pl miasta.pl mil.pl nieruchomosci.pl nom.pl pc.pl powiat.pl priv.pl realestate.pl rel.pl sex.pl shop.pl sklep.pl sos.pl szkola.pl targi.pl tm.pl tourism.pl travel.pl turystyka.pl gov.pl ap.gov.pl griw.gov.pl ic.gov.pl is.gov.pl kmpsp.gov.pl konsulat.gov.pl kppsp.gov.pl kwp.gov.pl kwpsp.gov.pl mup.gov.pl mw.gov.pl oia.gov.pl oirm.gov.pl oke.gov.pl oow.gov.pl oschr.gov.pl oum.gov.pl pa.gov.pl pinb.gov.pl piw.gov.pl po.gov.pl pr.gov.pl psp.gov.pl psse.gov.pl pup.gov.pl rzgw.gov.pl sa.gov.pl sdn.gov.pl sko.gov.pl so.gov.pl sr.gov.pl starostwo.gov.pl ug.gov.pl ugim.gov.pl um.gov.pl umig.gov.pl upow.gov.pl uppo.gov.pl us.gov.pl uw.gov.pl uzs.gov.pl wif.gov.pl wiih.gov.pl winb.gov.pl wios.gov.pl witd.gov.pl wiw.gov.pl wkz.gov.pl wsa.gov.pl wskr.gov.pl wsse.gov.pl wuoz.gov.pl wzmiuw.gov.pl zp.gov.pl zpisdn.gov.pl augustow.pl babia-gora.pl bedzin.pl beskidy.pl bialowieza.pl bialystok.pl bielawa.pl bieszczady.pl boleslawiec.pl bydgoszcz.pl bytom.pl cieszyn.pl czeladz.pl czest.pl dlugoleka.pl elblag.pl elk.pl glogow.pl gniezno.pl gorlice.pl grajewo.pl ilawa.pl jaworzno.pl jelenia-gora.pl jgora.pl kalisz.pl karpacz.pl kartuzy.pl kaszuby.pl katowice.pl kazimierz-dolny.pl kepno.pl ketrzyn.pl klodzko.pl kobierzyce.pl kolobrzeg.pl konin.pl konskowola.pl kutno.pl lapy.pl lebork.pl legnica.pl lezajsk.pl limanowa.pl lomza.pl lowicz.pl lubin.pl lukow.pl malbork.pl malopolska.pl mazowsze.pl mazury.pl mielec.pl mielno.pl mragowo.pl naklo.pl nowaruda.pl nysa.pl olawa.pl olecko.pl olkusz.pl olsztyn.pl opoczno.pl opole.pl ostroda.pl ostroleka.pl ostrowiec.pl ostrowwlkp.pl pila.pl pisz.pl podhale.pl podlasie.pl polkowice.pl pomorskie.pl pomorze.pl prochowice.pl pruszkow.pl przeworsk.pl pulawy.pl radom.pl rawa-maz.pl rybnik.pl rzeszow.pl sanok.pl sejny.pl skoczow.pl slask.pl slupsk.pl sosnowiec.pl stalowa-wola.pl starachowice.pl stargard.pl suwalki.pl swidnica.pl swiebodzin.pl swinoujscie.pl szczecin.pl szczytno.pl tarnobrzeg.pl tgory.pl turek.pl tychy.pl ustka.pl walbrzych.pl warmia.pl warszawa.pl waw.pl wegrow.pl wielun.pl wlocl.pl wloclawek.pl wodzislaw.pl wolomin.pl wroclaw.pl zachpomor.pl zagan.pl zarow.pl zgora.pl zgorzelec.pl pm pn co.pn edu.pn gov.pn net.pn org.pn post pr biz.pr com.pr edu.pr gov.pr info.pr isla.pr name.pr net.pr org.pr pro.pr ac.pr est.pr prof.pr pro aaa.pro aca.pro acct.pro avocat.pro bar.pro cpa.pro eng.pro jur.pro law.pro med.pro recht.pro ps com.ps edu.ps gov.ps net.ps org.ps plo.ps sec.ps pt com.pt edu.pt gov.pt int.pt net.pt nome.pt org.pt publ.pt pw belau.pw co.pw ed.pw go.pw or.pw py com.py coop.py edu.py gov.py mil.py net.py org.py qa com.qa edu.qa gov.qa mil.qa name.qa net.qa org.qa sch.qa re asso.re com.re ro arts.ro com.ro firm.ro info.ro nom.ro nt.ro org.ro rec.ro store.ro tm.ro www.ro rs ac.rs co.rs edu.rs gov.rs in.rs org.rs ru rw ac.rw co.rw coop.rw gov.rw mil.rw net.rw org.rw sa com.sa edu.sa gov.sa med.sa net.sa org.sa pub.sa sch.sa sb com.sb edu.sb gov.sb net.sb org.sb sc com.sc edu.sc gov.sc net.sc org.sc sd com.sd edu.sd gov.sd info.sd med.sd net.sd org.sd tv.sd se a.se ac.se b.se bd.se brand.se c.se d.se e.se f.se fh.se fhsk.se fhv.se g.se h.se i.se k.se komforb.se kommunalforbund.se komvux.se l.se lanbib.se m.se n.se naturbruksgymn.se o.se org.se p.se parti.se pp.se press.se r.se s.se t.se tm.se u.se w.se x.se y.se z.se sg com.sg edu.sg gov.sg net.sg org.sg sh com.sh gov.sh mil.sh net.sh org.sh si sj sk sl com.sl edu.sl gov.sl net.sl org.sl sm sn art.sn com.sn edu.sn gouv.sn org.sn perso.sn univ.sn so com.so edu.so gov.so me.so net.so org.so sr ss biz.ss co.ss com.ss edu.ss gov.ss me.ss net.ss org.ss sch.ss st co.st com.st consulado.st edu.st embaixada.st mil.st net.st org.st principe.st saotome.st store.st su sv com.sv edu.sv gob.sv org.sv red.sv sx gov.sx sy com.sy edu.sy gov.sy mil.sy net.sy org.sy sz ac.sz co.sz org.sz tc td tel tf tg th ac.th co.th go.th in.th mi.th net.th or.th tj ac.tj biz.tj co.tj com.tj edu.tj go.tj gov.tj int.tj mil.tj name.tj net.tj nic.tj org.tj test.tj web.tj tk tl gov.tl tm co.tm com.tm edu.tm gov.tm mil.tm net.tm nom.tm org.tm tn com.tn ens.tn fin.tn gov.tn ind.tn info.tn intl.tn mincom.tn nat.tn net.tn org.tn perso.tn tourism.tn to com.to edu.to gov.to mil.to net.to org.to tr av.tr bbs.tr bel.tr biz.tr com.tr dr.tr edu.tr gen.tr gov.tr info.tr k12.tr kep.tr mil.tr name.tr net.tr org.tr pol.tr tel.tr tsk.tr tv.tr web.tr nc.tr gov.nc.tr tt biz.tt co.tt com.tt edu.tt gov.tt info.tt mil.tt name.tt net.tt org.tt pro.tt tv tw club.tw com.tw ebiz.tw edu.tw game.tw gov.tw idv.tw mil.tw net.tw org.tw tz ac.tz co.tz go.tz hotel.tz info.tz me.tz mil.tz mobi.tz ne.tz or.tz sc.tz tv.tz ua com.ua edu.ua gov.ua in.ua net.ua org.ua cherkassy.ua cherkasy.ua chernigov.ua chernihiv.ua chernivtsi.ua chernovtsy.ua ck.ua cn.ua cr.ua crimea.ua cv.ua dn.ua dnepropetrovsk.ua dnipropetrovsk.ua donetsk.ua dp.ua if.ua ivano-frankivsk.ua kh.ua kharkiv.ua kharkov.ua kherson.ua khmelnitskiy.ua khmelnytskyi.ua kiev.ua kirovograd.ua km.ua kr.ua kropyvnytskyi.ua krym.ua ks.ua kv.ua kyiv.ua lg.ua lt.ua lugansk.ua luhansk.ua lutsk.ua lv.ua lviv.ua mk.ua mykolaiv.ua nikolaev.ua od.ua odesa.ua odessa.ua pl.ua poltava.ua rivne.ua rovno.ua rv.ua sb.ua sebastopol.ua sevastopol.ua sm.ua sumy.ua te.ua ternopil.ua uz.ua uzhgorod.ua uzhhorod.ua vinnica.ua vinnytsia.ua vn.ua volyn.ua yalta.ua zakarpattia.ua zaporizhzhe.ua zaporizhzhia.ua zhitomir.ua zhytomyr.ua zp.ua zt.ua ug ac.ug co.ug com.ug go.ug ne.ug or.ug org.ug sc.ug uk ac.uk co.uk gov.uk ltd.uk me.uk net.uk nhs.uk org.uk plc.uk police.uk *.sch.uk us dni.us fed.us isa.us kids.us nsn.us ak.us al.us ar.us as.us az.us ca.us co.us ct.us dc.us de.us fl.us ga.us gu.us hi.us ia.us id.us il.us in.us ks.us ky.us la.us ma.us md.us me.us mi.us mn.us mo.us ms.us mt.us nc.us nd.us ne.us nh.us nj.us nm.us nv.us ny.us oh.us ok.us or.us pa.us pr.us ri.us sc.us sd.us tn.us tx.us ut.us va.us vi.us vt.us wa.us wi.us wv.us wy.us k12.ak.us k12.al.us k12.ar.us k12.as.us k12.az.us k12.ca.us k12.co.us k12.ct.us k12.dc.us k12.fl.us k12.ga.us k12.gu.us k12.ia.us k12.id.us k12.il.us k12.in.us k12.ks.us k12.ky.us k12.la.us k12.ma.us k12.md.us k12.me.us k12.mi.us k12.mn.us k12.mo.us k12.ms.us k12.mt.us k12.nc.us k12.ne.us k12.nh.us k12.nj.us k12.nm.us k12.nv.us k12.ny.us k12.oh.us k12.ok.us k12.or.us k12.pa.us k12.pr.us k12.sc.us k12.tn.us k12.tx.us k12.ut.us k12.va.us k12.vi.us k12.vt.us k12.wa.us k12.wi.us cc.ak.us lib.ak.us cc.al.us lib.al.us cc.ar.us lib.ar.us cc.as.us lib.as.us cc.az.us lib.az.us cc.ca.us lib.ca.us cc.co.us lib.co.us cc.ct.us lib.ct.us cc.dc.us lib.dc.us cc.de.us cc.fl.us cc.ga.us cc.gu.us cc.hi.us cc.ia.us cc.id.us cc.il.us cc.in.us cc.ks.us cc.ky.us cc.la.us cc.ma.us cc.md.us cc.me.us cc.mi.us cc.mn.us cc.mo.us cc.ms.us cc.mt.us cc.nc.us cc.nd.us cc.ne.us cc.nh.us cc.nj.us cc.nm.us cc.nv.us cc.ny.us cc.oh.us cc.ok.us cc.or.us cc.pa.us cc.pr.us cc.ri.us cc.sc.us cc.sd.us cc.tn.us cc.tx.us cc.ut.us cc.va.us cc.vi.us cc.vt.us cc.wa.us cc.wi.us cc.wv.us cc.wy.us k12.wy.us lib.fl.us lib.ga.us lib.gu.us lib.hi.us lib.ia.us lib.id.us lib.il.us lib.in.us lib.ks.us lib.ky.us lib.la.us lib.ma.us lib.md.us lib.me.us lib.mi.us lib.mn.us lib.mo.us lib.ms.us lib.mt.us lib.nc.us lib.nd.us lib.ne.us lib.nh.us lib.nj.us lib.nm.us lib.nv.us lib.ny.us lib.oh.us lib.ok.us lib.or.us lib.pa.us lib.pr.us lib.ri.us lib.sc.us lib.sd.us lib.tn.us lib.tx.us lib.ut.us lib.va.us lib.vi.us lib.vt.us lib.wa.us lib.wi.us lib.wy.us chtr.k12.ma.us paroch.k12.ma.us pvt.k12.ma.us ann-arbor.mi.us cog.mi.us dst.mi.us eaton.mi.us gen.mi.us mus.mi.us tec.mi.us washtenaw.mi.us uy com.uy edu.uy gub.uy mil.uy net.uy org.uy uz co.uz com.uz net.uz org.uz va vc com.vc edu.vc gov.vc mil.vc net.vc org.vc ve arts.ve bib.ve co.ve com.ve e12.ve edu.ve firm.ve gob.ve gov.ve info.ve int.ve mil.ve net.ve nom.ve org.ve rar.ve rec.ve store.ve tec.ve web.ve vg vi co.vi com.vi k12.vi net.vi org.vi vn ac.vn ai.vn biz.vn com.vn edu.vn gov.vn health.vn id.vn info.vn int.vn io.vn name.vn net.vn org.vn pro.vn angiang.vn bacgiang.vn backan.vn baclieu.vn bacninh.vn baria-vungtau.vn bentre.vn binhdinh.vn binhduong.vn binhphuoc.vn binhthuan.vn camau.vn cantho.vn caobang.vn daklak.vn daknong.vn danang.vn dienbien.vn dongnai.vn dongthap.vn gialai.vn hagiang.vn haiduong.vn haiphong.vn hanam.vn hanoi.vn hatinh.vn haugiang.vn hoabinh.vn hungyen.vn khanhhoa.vn kiengiang.vn kontum.vn laichau.vn lamdong.vn langson.vn laocai.vn longan.vn namdinh.vn nghean.vn ninhbinh.vn ninhthuan.vn phutho.vn phuyen.vn quangbinh.vn quangnam.vn quangngai.vn quangninh.vn quangtri.vn soctrang.vn sonla.vn tayninh.vn thaibinh.vn thainguyen.vn thanhhoa.vn thanhphohochiminh.vn thuathienhue.vn tiengiang.vn travinh.vn tuyenquang.vn vinhlong.vn vinhphuc.vn yenbai.vn vu com.vu edu.vu net.vu org.vu wf ws com.ws edu.ws gov.ws net.ws org.ws yt \u0627\u0645\u0627\u0631\u0627\u062a \u0570\u0561\u0575 \u09ac\u09be\u0982\u09b2\u09be \u0431\u0433 \u0627\u0644\u0628\u062d\u0631\u064a\u0646 \u0431\u0435\u043b \u4e2d\u56fd \u4e2d\u570b \u0627\u0644\u062c\u0632\u0627\u0626\u0631 \u0645\u0635\u0631 \u0435\u044e \u03b5\u03c5 \u0645\u0648\u0631\u064a\u062a\u0627\u0646\u064a\u0627 \u10d2\u10d4 \u03b5\u03bb \u9999\u6e2f \u500b\u4eba.\u9999\u6e2f \u516c\u53f8.\u9999\u6e2f \u653f\u5e9c.\u9999\u6e2f \u6559\u80b2.\u9999\u6e2f \u7d44\u7e54.\u9999\u6e2f \u7db2\u7d61.\u9999\u6e2f \u0cad\u0cbe\u0cb0\u0ca4 \u0b2d\u0b3e\u0b30\u0b24 \u09ad\u09be\u09f0\u09a4 \u092d\u093e\u0930\u0924\u092e\u094d \u092d\u093e\u0930\u094b\u0924 \u0680\u0627\u0631\u062a \u0d2d\u0d3e\u0d30\u0d24\u0d02 \u092d\u093e\u0930\u0924 \u0628\u0627\u0631\u062a \u0628\u06be\u0627\u0631\u062a \u0c2d\u0c3e\u0c30\u0c24\u0c4d \u0aad\u0abe\u0ab0\u0aa4 \u0a2d\u0a3e\u0a30\u0a24 \u09ad\u09be\u09b0\u09a4 \u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe \u0627\u06cc\u0631\u0627\u0646 \u0627\u064a\u0631\u0627\u0646 \u0639\u0631\u0627\u0642 \u0627\u0644\u0627\u0631\u062f\u0646 \ud55c\uad6d \u049b\u0430\u0437 \u0ea5\u0eb2\u0ea7 \u0dbd\u0d82\u0d9a\u0dcf \u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8 \u0627\u0644\u0645\u063a\u0631\u0628 \u043c\u043a\u0434 \u043c\u043e\u043d \u6fb3\u9580 \u6fb3\u95e8 \u0645\u0644\u064a\u0633\u064a\u0627 \u0639\u0645\u0627\u0646 \u067e\u0627\u06a9\u0633\u062a\u0627\u0646 \u067e\u0627\u0643\u0633\u062a\u0627\u0646 \u0641\u0644\u0633\u0637\u064a\u0646 \u0441\u0440\u0431 \u0430\u043a.\u0441\u0440\u0431 \u043e\u0431\u0440.\u0441\u0440\u0431 \u043e\u0434.\u0441\u0440\u0431 \u043e\u0440\u0433.\u0441\u0440\u0431 \u043f\u0440.\u0441\u0440\u0431 \u0443\u043f\u0440.\u0441\u0440\u0431 \u0440\u0444 \u0642\u0637\u0631 \u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629 \u0627\u0644\u0633\u0639\u0648\u062f\u06cc\u0629 \u0627\u0644\u0633\u0639\u0648\u062f\u06cc\u06c3 \u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0647 \u0633\u0648\u062f\u0627\u0646 \u65b0\u52a0\u5761 \u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd \u0633\u0648\u0631\u064a\u0629 \u0633\u0648\u0631\u064a\u0627 \u0e44\u0e17\u0e22 \u0e17\u0e2b\u0e32\u0e23.\u0e44\u0e17\u0e22 \u0e18\u0e38\u0e23\u0e01\u0e34\u0e08.\u0e44\u0e17\u0e22 \u0e40\u0e19\u0e47\u0e15.\u0e44\u0e17\u0e22 \u0e23\u0e31\u0e10\u0e1a\u0e32\u0e25.\u0e44\u0e17\u0e22 \u0e28\u0e36\u0e01\u0e29\u0e32.\u0e44\u0e17\u0e22 \u0e2d\u0e07\u0e04\u0e4c\u0e01\u0e23.\u0e44\u0e17\u0e22 \u062a\u0648\u0646\u0633 \u53f0\u7063 \u53f0\u6e7e \u81fa\u7063 \u0443\u043a\u0440 \u0627\u0644\u064a\u0645\u0646 xxx ye com.ye edu.ye gov.ye mil.ye net.ye org.ye ac.za agric.za alt.za co.za edu.za gov.za grondar.za law.za mil.za net.za ngo.za nic.za nis.za nom.za org.za school.za tm.za web.za zm ac.zm biz.zm co.zm com.zm edu.zm gov.zm info.zm mil.zm net.zm org.zm sch.zm zw ac.zw co.zw gov.zw mil.zw org.zw aaa aarp abb abbott abbvie abc able abogado abudhabi academy accenture accountant accountants aco actor ads adult aeg aetna afl africa agakhan agency aig airbus airforce airtel akdn alibaba alipay allfinanz allstate ally alsace alstom amazon americanexpress americanfamily amex amfam amica amsterdam analytics android anquan anz aol apartments app apple aquarelle arab aramco archi army art arte asda associates athleta attorney auction audi audible audio auspost author auto autos aws axa azure baby baidu banamex band bank bar barcelona barclaycard barclays barefoot bargains baseball basketball bauhaus bayern bbc bbt bbva bcg bcn beats beauty beer bentley berlin best bestbuy bet bharti bible bid bike bing bingo bio black blackfriday blockbuster blog bloomberg blue bms bmw bnpparibas boats boehringer bofa bom bond boo book booking bosch bostik boston bot boutique box bradesco bridgestone broadway broker brother brussels build builders business buy buzz bzh cab cafe cal call calvinklein cam camera camp canon capetown capital capitalone car caravan cards care career careers cars casa case cash casino catering catholic cba cbn cbre center ceo cern cfa cfd chanel channel charity chase chat cheap chintai christmas chrome church cipriani circle cisco citadel citi citic city claims cleaning click clinic clinique clothing cloud club clubmed coach codes coffee college cologne commbank community company compare computer comsec condos construction consulting contact contractors cooking cool corsica country coupon coupons courses cpa credit creditcard creditunion cricket crown crs cruise cruises cuisinella cymru cyou dad dance data date dating datsun day dclk dds deal dealer deals degree delivery dell deloitte delta democrat dental dentist desi design dev dhl diamonds diet digital direct directory discount discover dish diy dnp docs doctor dog domains dot download drive dtv dubai dunlop dupont durban dvag dvr earth eat eco edeka education email emerck energy engineer engineering enterprises epson equipment ericsson erni esq estate eurovision eus events exchange expert exposed express extraspace fage fail fairwinds faith family fan fans farm farmers fashion fast fedex feedback ferrari ferrero fidelity fido film final finance financial fire firestone firmdale fish fishing fit fitness flickr flights flir florist flowers fly foo food football ford forex forsale forum foundation fox free fresenius frl frogans frontier ftr fujitsu fun fund furniture futbol fyi gal gallery gallo gallup game games gap garden gay gbiz gdn gea gent genting george ggee gift gifts gives giving glass gle global globo gmail gmbh gmo gmx godaddy gold goldpoint golf goo goodyear goog google gop got grainger graphics gratis green gripe grocery group gucci guge guide guitars guru hair hamburg hangout haus hbo hdfc hdfcbank health healthcare help helsinki here hermes hiphop hisamitsu hitachi hiv hkt hockey holdings holiday homedepot homegoods homes homesense honda horse hospital host hosting hot hotels hotmail house how hsbc hughes hyatt hyundai ibm icbc ice icu ieee ifm ikano imamat imdb immo immobilien inc industries infiniti ing ink institute insurance insure international intuit investments ipiranga irish ismaili ist istanbul itau itv jaguar java jcb jeep jetzt jewelry jio jll jmp jnj joburg jot joy jpmorgan jprs juegos juniper kaufen kddi kerryhotels kerrylogistics kerryproperties kfh kia kids kim kindle kitchen kiwi koeln komatsu kosher kpmg kpn krd kred kuokgroup kyoto lacaixa lamborghini lamer lancaster land landrover lanxess lasalle lat latino latrobe law lawyer lds lease leclerc lefrak legal lego lexus lgbt lidl life lifeinsurance lifestyle lighting like lilly limited limo lincoln link lipsy live living llc llp loan loans locker locus lol london lotte lotto love lpl lplfinancial ltd ltda lundbeck luxe luxury madrid maif maison makeup man management mango map market marketing markets marriott marshalls mattel mba mckinsey med media meet melbourne meme memorial men menu merck merckmsd miami microsoft mini mint mit mitsubishi mlb mls mma mobile moda moe moi mom monash money monster mormon mortgage moscow moto motorcycles mov movie msd mtn mtr music nab nagoya navy nba nec netbank netflix network neustar new news next nextdirect nexus nfl ngo nhk nico nike nikon ninja nissan nissay nokia norton now nowruz nowtv nra nrw ntt nyc obi observer office okinawa olayan olayangroup ollo omega one ong onl online ooo open oracle orange organic origins osaka otsuka ott ovh page panasonic paris pars partners parts party pay pccw pet pfizer pharmacy phd philips phone photo photography photos physio pics pictet pictures pid pin ping pink pioneer pizza place play playstation plumbing plus pnc pohl poker politie porn pramerica praxi press prime prod productions prof progressive promo properties property protection pru prudential pub pwc qpon quebec quest racing radio read realestate realtor realty recipes red redstone redumbrella rehab reise reisen reit reliance ren rent rentals repair report republican rest restaurant review reviews rexroth rich richardli ricoh ril rio rip rocks rodeo rogers room rsvp rugby ruhr run rwe ryukyu saarland safe safety sakura sale salon samsclub samsung sandvik sandvikcoromant sanofi sap sarl sas save saxo sbi sbs scb schaeffler schmidt scholarships school schule schwarz science scot search seat secure security seek select sener services seven sew sex sexy sfr shangrila sharp shell shia shiksha shoes shop shopping shouji show silk sina singles site ski skin sky skype sling smart smile sncf soccer social softbank software sohu solar solutions song sony soy spa space sport spot srl stada staples star statebank statefarm stc stcgroup stockholm storage store stream studio study style sucks supplies supply support surf surgery suzuki swatch swiss sydney systems tab taipei talk taobao target tatamotors tatar tattoo tax taxi tci tdk team tech technology temasek tennis teva thd theater theatre tiaa tickets tienda tips tires tirol tjmaxx tjx tkmaxx tmall today tokyo tools top toray toshiba total tours town toyota toys trade trading training travel travelers travelersinsurance trust trv tube tui tunes tushu tvs ubank ubs unicom university uno uol ups vacations vana vanguard vegas ventures verisign versicherung vet viajes video vig viking villas vin vip virgin visa vision viva vivo vlaanderen vodka volvo vote voting voto voyage wales walmart walter wang wanggou watch watches weather weatherchannel webcam weber website wed wedding weibo weir whoswho wien wiki williamhill win windows wine winners wme wolterskluwer woodside work works world wow wtc wtf xbox xerox xihuan xin \u0915\u0949\u092e \u30bb\u30fc\u30eb \u4f5b\u5c71 \u6148\u5584 \u96c6\u56e2 \u5728\u7ebf \u70b9\u770b \u0e04\u0e2d\u0e21 \u516b\u5366 \u0645\u0648\u0642\u0639 \u516c\u76ca \u516c\u53f8 \u9999\u683c\u91cc\u62c9 \u7f51\u7ad9 \u79fb\u52a8 \u6211\u7231\u4f60 \u043c\u043e\u0441\u043a\u0432\u0430 \u043a\u0430\u0442\u043e\u043b\u0438\u043a \u043e\u043d\u043b\u0430\u0439\u043d \u0441\u0430\u0439\u0442 \u8054\u901a \u05e7\u05d5\u05dd \u65f6\u5c1a \u5fae\u535a \u6de1\u9a6c\u9521 \u30d5\u30a1\u30c3\u30b7\u30e7\u30f3 \u043e\u0440\u0433 \u0928\u0947\u091f \u30b9\u30c8\u30a2 \u30a2\u30de\u30be\u30f3 \uc0bc\uc131 \u5546\u6807 \u5546\u5e97 \u5546\u57ce \u0434\u0435\u0442\u0438 \u30dd\u30a4\u30f3\u30c8 \u65b0\u95fb \u5bb6\u96fb \u0643\u0648\u0645 \u4e2d\u6587\u7f51 \u4e2d\u4fe1 \u5a31\u4e50 \u8c37\u6b4c \u96fb\u8a0a\u76c8\u79d1 \u8d2d\u7269 \u30af\u30e9\u30a6\u30c9 \u901a\u8ca9 \u7f51\u5e97 \u0938\u0902\u0917\u0920\u0928 \u9910\u5385 \u7f51\u7edc \u043a\u043e\u043c \u4e9a\u9a6c\u900a \u98df\u54c1 \u98de\u5229\u6d66 \u624b\u673a \u0627\u0631\u0627\u0645\u0643\u0648 \u0627\u0644\u0639\u0644\u064a\u0627\u0646 \u0628\u0627\u0632\u0627\u0631 \u0627\u0628\u0648\u0638\u0628\u064a \u0643\u0627\u062b\u0648\u0644\u064a\u0643 \u0647\u0645\u0631\u0627\u0647 \ub2f7\ucef4 \u653f\u5e9c \u0634\u0628\u0643\u0629 \u0628\u064a\u062a\u0643 \u0639\u0631\u0628 \u673a\u6784 \u7ec4\u7ec7\u673a\u6784 \u5065\u5eb7 \u62db\u8058 \u0440\u0443\u0441 \u5927\u62ff \u307f\u3093\u306a \u30b0\u30fc\u30b0\u30eb \u4e16\u754c \u66f8\u7c4d \u7f51\u5740 \ub2f7\ub137 \u30b3\u30e0 \u5929\u4e3b\u6559 \u6e38\u620f verm\u00f6gensberater verm\u00f6gensberatung \u4f01\u4e1a \u4fe1\u606f \u5609\u91cc\u5927\u9152\u5e97 \u5609\u91cc \u5e7f\u4e1c \u653f\u52a1 xyz yachts yahoo yamaxun yandex yodobashi yoga yokohama you youtube yun zappos zara zero zip zone zuerich co.krd edu.krd art.pl gliwice.pl krakow.pl poznan.pl wroc.pl zakopane.pl lib.de.us 12chars.dev 12chars.it 12chars.pro cc.ua inf.ua ltd.ua 611.to a2hosted.com cpserver.com aaa.vodka *.on-acorn.io activetrail.biz adaptable.app adobeaemcloud.com *.dev.adobeaemcloud.com aem.live hlx.live adobeaemcloud.net aem.page hlx.page hlx3.page adobeio-static.net adobeioruntime.net africa.com beep.pl airkitapps.com airkitapps-au.com airkitapps.eu aivencloud.com akadns.net akamai.net akamai-staging.net akamaiedge.net akamaiedge-staging.net akamaihd.net akamaihd-staging.net akamaiorigin.net akamaiorigin-staging.net akamaized.net akamaized-staging.net edgekey.net edgekey-staging.net edgesuite.net edgesuite-staging.net barsy.ca *.compute.estate *.alces.network kasserver.com altervista.org alwaysdata.net myamaze.net execute-api.cn-north-1.amazonaws.com.cn execute-api.cn-northwest-1.amazonaws.com.cn execute-api.af-south-1.amazonaws.com execute-api.ap-east-1.amazonaws.com execute-api.ap-northeast-1.amazonaws.com execute-api.ap-northeast-2.amazonaws.com execute-api.ap-northeast-3.amazonaws.com execute-api.ap-south-1.amazonaws.com execute-api.ap-south-2.amazonaws.com execute-api.ap-southeast-1.amazonaws.com execute-api.ap-southeast-2.amazonaws.com execute-api.ap-southeast-3.amazonaws.com execute-api.ap-southeast-4.amazonaws.com execute-api.ap-southeast-5.amazonaws.com execute-api.ca-central-1.amazonaws.com execute-api.ca-west-1.amazonaws.com execute-api.eu-central-1.amazonaws.com execute-api.eu-central-2.amazonaws.com execute-api.eu-north-1.amazonaws.com execute-api.eu-south-1.amazonaws.com execute-api.eu-south-2.amazonaws.com execute-api.eu-west-1.amazonaws.com execute-api.eu-west-2.amazonaws.com execute-api.eu-west-3.amazonaws.com execute-api.il-central-1.amazonaws.com execute-api.me-central-1.amazonaws.com execute-api.me-south-1.amazonaws.com execute-api.sa-east-1.amazonaws.com execute-api.us-east-1.amazonaws.com execute-api.us-east-2.amazonaws.com execute-api.us-gov-east-1.amazonaws.com execute-api.us-gov-west-1.amazonaws.com execute-api.us-west-1.amazonaws.com execute-api.us-west-2.amazonaws.com cloudfront.net auth.af-south-1.amazoncognito.com auth.ap-east-1.amazoncognito.com auth.ap-northeast-1.amazoncognito.com auth.ap-northeast-2.amazoncognito.com auth.ap-northeast-3.amazoncognito.com auth.ap-south-1.amazoncognito.com auth.ap-south-2.amazoncognito.com auth.ap-southeast-1.amazoncognito.com auth.ap-southeast-2.amazoncognito.com auth.ap-southeast-3.amazoncognito.com auth.ap-southeast-4.amazoncognito.com auth.ca-central-1.amazoncognito.com auth.ca-west-1.amazoncognito.com auth.eu-central-1.amazoncognito.com auth.eu-central-2.amazoncognito.com auth.eu-north-1.amazoncognito.com auth.eu-south-1.amazoncognito.com auth.eu-south-2.amazoncognito.com auth.eu-west-1.amazoncognito.com auth.eu-west-2.amazoncognito.com auth.eu-west-3.amazoncognito.com auth.il-central-1.amazoncognito.com auth.me-central-1.amazoncognito.com auth.me-south-1.amazoncognito.com auth.sa-east-1.amazoncognito.com auth.us-east-1.amazoncognito.com auth-fips.us-east-1.amazoncognito.com auth.us-east-2.amazoncognito.com auth-fips.us-east-2.amazoncognito.com auth-fips.us-gov-west-1.amazoncognito.com auth.us-west-1.amazoncognito.com auth-fips.us-west-1.amazoncognito.com auth.us-west-2.amazoncognito.com auth-fips.us-west-2.amazoncognito.com *.compute.amazonaws.com.cn *.compute.amazonaws.com *.compute-1.amazonaws.com us-east-1.amazonaws.com emrappui-prod.cn-north-1.amazonaws.com.cn emrnotebooks-prod.cn-north-1.amazonaws.com.cn emrstudio-prod.cn-north-1.amazonaws.com.cn emrappui-prod.cn-northwest-1.amazonaws.com.cn emrnotebooks-prod.cn-northwest-1.amazonaws.com.cn emrstudio-prod.cn-northwest-1.amazonaws.com.cn emrappui-prod.af-south-1.amazonaws.com emrnotebooks-prod.af-south-1.amazonaws.com emrstudio-prod.af-south-1.amazonaws.com emrappui-prod.ap-east-1.amazonaws.com emrnotebooks-prod.ap-east-1.amazonaws.com emrstudio-prod.ap-east-1.amazonaws.com emrappui-prod.ap-northeast-1.amazonaws.com emrnotebooks-prod.ap-northeast-1.amazonaws.com emrstudio-prod.ap-northeast-1.amazonaws.com emrappui-prod.ap-northeast-2.amazonaws.com emrnotebooks-prod.ap-northeast-2.amazonaws.com emrstudio-prod.ap-northeast-2.amazonaws.com emrappui-prod.ap-northeast-3.amazonaws.com emrnotebooks-prod.ap-northeast-3.amazonaws.com emrstudio-prod.ap-northeast-3.amazonaws.com emrappui-prod.ap-south-1.amazonaws.com emrnotebooks-prod.ap-south-1.amazonaws.com emrstudio-prod.ap-south-1.amazonaws.com emrappui-prod.ap-south-2.amazonaws.com emrnotebooks-prod.ap-south-2.amazonaws.com emrstudio-prod.ap-south-2.amazonaws.com emrappui-prod.ap-southeast-1.amazonaws.com emrnotebooks-prod.ap-southeast-1.amazonaws.com emrstudio-prod.ap-southeast-1.amazonaws.com emrappui-prod.ap-southeast-2.amazonaws.com emrnotebooks-prod.ap-southeast-2.amazonaws.com emrstudio-prod.ap-southeast-2.amazonaws.com emrappui-prod.ap-southeast-3.amazonaws.com emrnotebooks-prod.ap-southeast-3.amazonaws.com emrstudio-prod.ap-southeast-3.amazonaws.com emrappui-prod.ap-southeast-4.amazonaws.com emrnotebooks-prod.ap-southeast-4.amazonaws.com emrstudio-prod.ap-southeast-4.amazonaws.com emrappui-prod.ca-central-1.amazonaws.com emrnotebooks-prod.ca-central-1.amazonaws.com emrstudio-prod.ca-central-1.amazonaws.com emrappui-prod.ca-west-1.amazonaws.com emrnotebooks-prod.ca-west-1.amazonaws.com emrstudio-prod.ca-west-1.amazonaws.com emrappui-prod.eu-central-1.amazonaws.com emrnotebooks-prod.eu-central-1.amazonaws.com emrstudio-prod.eu-central-1.amazonaws.com emrappui-prod.eu-central-2.amazonaws.com emrnotebooks-prod.eu-central-2.amazonaws.com emrstudio-prod.eu-central-2.amazonaws.com emrappui-prod.eu-north-1.amazonaws.com emrnotebooks-prod.eu-north-1.amazonaws.com emrstudio-prod.eu-north-1.amazonaws.com emrappui-prod.eu-south-1.amazonaws.com emrnotebooks-prod.eu-south-1.amazonaws.com emrstudio-prod.eu-south-1.amazonaws.com emrappui-prod.eu-south-2.amazonaws.com emrnotebooks-prod.eu-south-2.amazonaws.com emrstudio-prod.eu-south-2.amazonaws.com emrappui-prod.eu-west-1.amazonaws.com emrnotebooks-prod.eu-west-1.amazonaws.com emrstudio-prod.eu-west-1.amazonaws.com emrappui-prod.eu-west-2.amazonaws.com emrnotebooks-prod.eu-west-2.amazonaws.com emrstudio-prod.eu-west-2.amazonaws.com emrappui-prod.eu-west-3.amazonaws.com emrnotebooks-prod.eu-west-3.amazonaws.com emrstudio-prod.eu-west-3.amazonaws.com emrappui-prod.il-central-1.amazonaws.com emrnotebooks-prod.il-central-1.amazonaws.com emrstudio-prod.il-central-1.amazonaws.com emrappui-prod.me-central-1.amazonaws.com emrnotebooks-prod.me-central-1.amazonaws.com emrstudio-prod.me-central-1.amazonaws.com emrappui-prod.me-south-1.amazonaws.com emrnotebooks-prod.me-south-1.amazonaws.com emrstudio-prod.me-south-1.amazonaws.com emrappui-prod.sa-east-1.amazonaws.com emrnotebooks-prod.sa-east-1.amazonaws.com emrstudio-prod.sa-east-1.amazonaws.com emrappui-prod.us-east-1.amazonaws.com emrnotebooks-prod.us-east-1.amazonaws.com emrstudio-prod.us-east-1.amazonaws.com emrappui-prod.us-east-2.amazonaws.com emrnotebooks-prod.us-east-2.amazonaws.com emrstudio-prod.us-east-2.amazonaws.com emrappui-prod.us-gov-east-1.amazonaws.com emrnotebooks-prod.us-gov-east-1.amazonaws.com emrstudio-prod.us-gov-east-1.amazonaws.com emrappui-prod.us-gov-west-1.amazonaws.com emrnotebooks-prod.us-gov-west-1.amazonaws.com emrstudio-prod.us-gov-west-1.amazonaws.com emrappui-prod.us-west-1.amazonaws.com emrnotebooks-prod.us-west-1.amazonaws.com emrstudio-prod.us-west-1.amazonaws.com emrappui-prod.us-west-2.amazonaws.com emrnotebooks-prod.us-west-2.amazonaws.com emrstudio-prod.us-west-2.amazonaws.com *.cn-north-1.airflow.amazonaws.com.cn *.cn-northwest-1.airflow.amazonaws.com.cn *.af-south-1.airflow.amazonaws.com *.ap-east-1.airflow.amazonaws.com *.ap-northeast-1.airflow.amazonaws.com *.ap-northeast-2.airflow.amazonaws.com *.ap-northeast-3.airflow.amazonaws.com *.ap-south-1.airflow.amazonaws.com *.ap-south-2.airflow.amazonaws.com *.ap-southeast-1.airflow.amazonaws.com *.ap-southeast-2.airflow.amazonaws.com *.ap-southeast-3.airflow.amazonaws.com *.ap-southeast-4.airflow.amazonaws.com *.ca-central-1.airflow.amazonaws.com *.ca-west-1.airflow.amazonaws.com *.eu-central-1.airflow.amazonaws.com *.eu-central-2.airflow.amazonaws.com *.eu-north-1.airflow.amazonaws.com *.eu-south-1.airflow.amazonaws.com *.eu-south-2.airflow.amazonaws.com *.eu-west-1.airflow.amazonaws.com *.eu-west-2.airflow.amazonaws.com *.eu-west-3.airflow.amazonaws.com *.il-central-1.airflow.amazonaws.com *.me-central-1.airflow.amazonaws.com *.me-south-1.airflow.amazonaws.com *.sa-east-1.airflow.amazonaws.com *.us-east-1.airflow.amazonaws.com *.us-east-2.airflow.amazonaws.com *.us-west-1.airflow.amazonaws.com *.us-west-2.airflow.amazonaws.com s3.dualstack.cn-north-1.amazonaws.com.cn s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn s3-website.dualstack.cn-north-1.amazonaws.com.cn s3.cn-north-1.amazonaws.com.cn s3-accesspoint.cn-north-1.amazonaws.com.cn s3-deprecated.cn-north-1.amazonaws.com.cn s3-object-lambda.cn-north-1.amazonaws.com.cn s3-website.cn-north-1.amazonaws.com.cn s3.dualstack.cn-northwest-1.amazonaws.com.cn s3-accesspoint.dualstack.cn-northwest-1.amazonaws.com.cn s3.cn-northwest-1.amazonaws.com.cn s3-accesspoint.cn-northwest-1.amazonaws.com.cn s3-object-lambda.cn-northwest-1.amazonaws.com.cn s3-website.cn-northwest-1.amazonaws.com.cn s3.dualstack.af-south-1.amazonaws.com s3-accesspoint.dualstack.af-south-1.amazonaws.com s3-website.dualstack.af-south-1.amazonaws.com s3.af-south-1.amazonaws.com s3-accesspoint.af-south-1.amazonaws.com s3-object-lambda.af-south-1.amazonaws.com s3-website.af-south-1.amazonaws.com s3.dualstack.ap-east-1.amazonaws.com s3-accesspoint.dualstack.ap-east-1.amazonaws.com s3.ap-east-1.amazonaws.com s3-accesspoint.ap-east-1.amazonaws.com s3-object-lambda.ap-east-1.amazonaws.com s3-website.ap-east-1.amazonaws.com s3.dualstack.ap-northeast-1.amazonaws.com s3-accesspoint.dualstack.ap-northeast-1.amazonaws.com s3-website.dualstack.ap-northeast-1.amazonaws.com s3.ap-northeast-1.amazonaws.com s3-accesspoint.ap-northeast-1.amazonaws.com s3-object-lambda.ap-northeast-1.amazonaws.com s3-website.ap-northeast-1.amazonaws.com s3.dualstack.ap-northeast-2.amazonaws.com s3-accesspoint.dualstack.ap-northeast-2.amazonaws.com s3-website.dualstack.ap-northeast-2.amazonaws.com s3.ap-northeast-2.amazonaws.com s3-accesspoint.ap-northeast-2.amazonaws.com s3-object-lambda.ap-northeast-2.amazonaws.com s3-website.ap-northeast-2.amazonaws.com s3.dualstack.ap-northeast-3.amazonaws.com s3-accesspoint.dualstack.ap-northeast-3.amazonaws.com s3-website.dualstack.ap-northeast-3.amazonaws.com s3.ap-northeast-3.amazonaws.com s3-accesspoint.ap-northeast-3.amazonaws.com s3-object-lambda.ap-northeast-3.amazonaws.com s3-website.ap-northeast-3.amazonaws.com s3.dualstack.ap-south-1.amazonaws.com s3-accesspoint.dualstack.ap-south-1.amazonaws.com s3-website.dualstack.ap-south-1.amazonaws.com s3.ap-south-1.amazonaws.com s3-accesspoint.ap-south-1.amazonaws.com s3-object-lambda.ap-south-1.amazonaws.com s3-website.ap-south-1.amazonaws.com s3.dualstack.ap-south-2.amazonaws.com s3-accesspoint.dualstack.ap-south-2.amazonaws.com s3-website.dualstack.ap-south-2.amazonaws.com s3.ap-south-2.amazonaws.com s3-accesspoint.ap-south-2.amazonaws.com s3-object-lambda.ap-south-2.amazonaws.com s3-website.ap-south-2.amazonaws.com s3.dualstack.ap-southeast-1.amazonaws.com s3-accesspoint.dualstack.ap-southeast-1.amazonaws.com s3-website.dualstack.ap-southeast-1.amazonaws.com s3.ap-southeast-1.amazonaws.com s3-accesspoint.ap-southeast-1.amazonaws.com s3-object-lambda.ap-southeast-1.amazonaws.com s3-website.ap-southeast-1.amazonaws.com s3.dualstack.ap-southeast-2.amazonaws.com s3-accesspoint.dualstack.ap-southeast-2.amazonaws.com s3-website.dualstack.ap-southeast-2.amazonaws.com s3.ap-southeast-2.amazonaws.com s3-accesspoint.ap-southeast-2.amazonaws.com s3-object-lambda.ap-southeast-2.amazonaws.com s3-website.ap-southeast-2.amazonaws.com s3.dualstack.ap-southeast-3.amazonaws.com s3-accesspoint.dualstack.ap-southeast-3.amazonaws.com s3-website.dualstack.ap-southeast-3.amazonaws.com s3.ap-southeast-3.amazonaws.com s3-accesspoint.ap-southeast-3.amazonaws.com s3-object-lambda.ap-southeast-3.amazonaws.com s3-website.ap-southeast-3.amazonaws.com s3.dualstack.ap-southeast-4.amazonaws.com s3-accesspoint.dualstack.ap-southeast-4.amazonaws.com s3-website.dualstack.ap-southeast-4.amazonaws.com s3.ap-southeast-4.amazonaws.com s3-accesspoint.ap-southeast-4.amazonaws.com s3-object-lambda.ap-southeast-4.amazonaws.com s3-website.ap-southeast-4.amazonaws.com s3.dualstack.ap-southeast-5.amazonaws.com s3-accesspoint.dualstack.ap-southeast-5.amazonaws.com s3-website.dualstack.ap-southeast-5.amazonaws.com s3.ap-southeast-5.amazonaws.com s3-accesspoint.ap-southeast-5.amazonaws.com s3-deprecated.ap-southeast-5.amazonaws.com s3-object-lambda.ap-southeast-5.amazonaws.com s3-website.ap-southeast-5.amazonaws.com s3.dualstack.ca-central-1.amazonaws.com s3-accesspoint.dualstack.ca-central-1.amazonaws.com s3-accesspoint-fips.dualstack.ca-central-1.amazonaws.com s3-fips.dualstack.ca-central-1.amazonaws.com s3-website.dualstack.ca-central-1.amazonaws.com s3.ca-central-1.amazonaws.com s3-accesspoint.ca-central-1.amazonaws.com s3-accesspoint-fips.ca-central-1.amazonaws.com s3-fips.ca-central-1.amazonaws.com s3-object-lambda.ca-central-1.amazonaws.com s3-website.ca-central-1.amazonaws.com s3.dualstack.ca-west-1.amazonaws.com s3-accesspoint.dualstack.ca-west-1.amazonaws.com s3-accesspoint-fips.dualstack.ca-west-1.amazonaws.com s3-fips.dualstack.ca-west-1.amazonaws.com s3-website.dualstack.ca-west-1.amazonaws.com s3.ca-west-1.amazonaws.com s3-accesspoint.ca-west-1.amazonaws.com s3-accesspoint-fips.ca-west-1.amazonaws.com s3-fips.ca-west-1.amazonaws.com s3-object-lambda.ca-west-1.amazonaws.com s3-website.ca-west-1.amazonaws.com s3.dualstack.eu-central-1.amazonaws.com s3-accesspoint.dualstack.eu-central-1.amazonaws.com s3-website.dualstack.eu-central-1.amazonaws.com s3.eu-central-1.amazonaws.com s3-accesspoint.eu-central-1.amazonaws.com s3-object-lambda.eu-central-1.amazonaws.com s3-website.eu-central-1.amazonaws.com s3.dualstack.eu-central-2.amazonaws.com s3-accesspoint.dualstack.eu-central-2.amazonaws.com s3-website.dualstack.eu-central-2.amazonaws.com s3.eu-central-2.amazonaws.com s3-accesspoint.eu-central-2.amazonaws.com s3-object-lambda.eu-central-2.amazonaws.com s3-website.eu-central-2.amazonaws.com s3.dualstack.eu-north-1.amazonaws.com s3-accesspoint.dualstack.eu-north-1.amazonaws.com s3.eu-north-1.amazonaws.com s3-accesspoint.eu-north-1.amazonaws.com s3-object-lambda.eu-north-1.amazonaws.com s3-website.eu-north-1.amazonaws.com s3.dualstack.eu-south-1.amazonaws.com s3-accesspoint.dualstack.eu-south-1.amazonaws.com s3-website.dualstack.eu-south-1.amazonaws.com s3.eu-south-1.amazonaws.com s3-accesspoint.eu-south-1.amazonaws.com s3-object-lambda.eu-south-1.amazonaws.com s3-website.eu-south-1.amazonaws.com s3.dualstack.eu-south-2.amazonaws.com s3-accesspoint.dualstack.eu-south-2.amazonaws.com s3-website.dualstack.eu-south-2.amazonaws.com s3.eu-south-2.amazonaws.com s3-accesspoint.eu-south-2.amazonaws.com s3-object-lambda.eu-south-2.amazonaws.com s3-website.eu-south-2.amazonaws.com s3.dualstack.eu-west-1.amazonaws.com s3-accesspoint.dualstack.eu-west-1.amazonaws.com s3-website.dualstack.eu-west-1.amazonaws.com s3.eu-west-1.amazonaws.com s3-accesspoint.eu-west-1.amazonaws.com s3-deprecated.eu-west-1.amazonaws.com s3-object-lambda.eu-west-1.amazonaws.com s3-website.eu-west-1.amazonaws.com s3.dualstack.eu-west-2.amazonaws.com s3-accesspoint.dualstack.eu-west-2.amazonaws.com s3.eu-west-2.amazonaws.com s3-accesspoint.eu-west-2.amazonaws.com s3-object-lambda.eu-west-2.amazonaws.com s3-website.eu-west-2.amazonaws.com s3.dualstack.eu-west-3.amazonaws.com s3-accesspoint.dualstack.eu-west-3.amazonaws.com s3-website.dualstack.eu-west-3.amazonaws.com s3.eu-west-3.amazonaws.com s3-accesspoint.eu-west-3.amazonaws.com s3-object-lambda.eu-west-3.amazonaws.com s3-website.eu-west-3.amazonaws.com s3.dualstack.il-central-1.amazonaws.com s3-accesspoint.dualstack.il-central-1.amazonaws.com s3-website.dualstack.il-central-1.amazonaws.com s3.il-central-1.amazonaws.com s3-accesspoint.il-central-1.amazonaws.com s3-object-lambda.il-central-1.amazonaws.com s3-website.il-central-1.amazonaws.com s3.dualstack.me-central-1.amazonaws.com s3-accesspoint.dualstack.me-central-1.amazonaws.com s3-website.dualstack.me-central-1.amazonaws.com s3.me-central-1.amazonaws.com s3-accesspoint.me-central-1.amazonaws.com s3-object-lambda.me-central-1.amazonaws.com s3-website.me-central-1.amazonaws.com s3.dualstack.me-south-1.amazonaws.com s3-accesspoint.dualstack.me-south-1.amazonaws.com s3.me-south-1.amazonaws.com s3-accesspoint.me-south-1.amazonaws.com s3-object-lambda.me-south-1.amazonaws.com s3-website.me-south-1.amazonaws.com s3.amazonaws.com s3-1.amazonaws.com s3-ap-east-1.amazonaws.com s3-ap-northeast-1.amazonaws.com s3-ap-northeast-2.amazonaws.com s3-ap-northeast-3.amazonaws.com s3-ap-south-1.amazonaws.com s3-ap-southeast-1.amazonaws.com s3-ap-southeast-2.amazonaws.com s3-ca-central-1.amazonaws.com s3-eu-central-1.amazonaws.com s3-eu-north-1.amazonaws.com s3-eu-west-1.amazonaws.com s3-eu-west-2.amazonaws.com s3-eu-west-3.amazonaws.com s3-external-1.amazonaws.com s3-fips-us-gov-east-1.amazonaws.com s3-fips-us-gov-west-1.amazonaws.com mrap.accesspoint.s3-global.amazonaws.com s3-me-south-1.amazonaws.com s3-sa-east-1.amazonaws.com s3-us-east-2.amazonaws.com s3-us-gov-east-1.amazonaws.com s3-us-gov-west-1.amazonaws.com s3-us-west-1.amazonaws.com s3-us-west-2.amazonaws.com s3-website-ap-northeast-1.amazonaws.com s3-website-ap-southeast-1.amazonaws.com s3-website-ap-southeast-2.amazonaws.com s3-website-eu-west-1.amazonaws.com s3-website-sa-east-1.amazonaws.com s3-website-us-east-1.amazonaws.com s3-website-us-gov-west-1.amazonaws.com s3-website-us-west-1.amazonaws.com s3-website-us-west-2.amazonaws.com s3.dualstack.sa-east-1.amazonaws.com s3-accesspoint.dualstack.sa-east-1.amazonaws.com s3-website.dualstack.sa-east-1.amazonaws.com s3.sa-east-1.amazonaws.com s3-accesspoint.sa-east-1.amazonaws.com s3-object-lambda.sa-east-1.amazonaws.com s3-website.sa-east-1.amazonaws.com s3.dualstack.us-east-1.amazonaws.com s3-accesspoint.dualstack.us-east-1.amazonaws.com s3-accesspoint-fips.dualstack.us-east-1.amazonaws.com s3-fips.dualstack.us-east-1.amazonaws.com s3-website.dualstack.us-east-1.amazonaws.com s3.us-east-1.amazonaws.com s3-accesspoint.us-east-1.amazonaws.com s3-accesspoint-fips.us-east-1.amazonaws.com s3-deprecated.us-east-1.amazonaws.com s3-fips.us-east-1.amazonaws.com s3-object-lambda.us-east-1.amazonaws.com s3-website.us-east-1.amazonaws.com s3.dualstack.us-east-2.amazonaws.com s3-accesspoint.dualstack.us-east-2.amazonaws.com s3-accesspoint-fips.dualstack.us-east-2.amazonaws.com s3-fips.dualstack.us-east-2.amazonaws.com s3-website.dualstack.us-east-2.amazonaws.com s3.us-east-2.amazonaws.com s3-accesspoint.us-east-2.amazonaws.com s3-accesspoint-fips.us-east-2.amazonaws.com s3-deprecated.us-east-2.amazonaws.com s3-fips.us-east-2.amazonaws.com s3-object-lambda.us-east-2.amazonaws.com s3-website.us-east-2.amazonaws.com s3.dualstack.us-gov-east-1.amazonaws.com s3-accesspoint.dualstack.us-gov-east-1.amazonaws.com s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com s3-fips.dualstack.us-gov-east-1.amazonaws.com s3.us-gov-east-1.amazonaws.com s3-accesspoint.us-gov-east-1.amazonaws.com s3-accesspoint-fips.us-gov-east-1.amazonaws.com s3-fips.us-gov-east-1.amazonaws.com s3-object-lambda.us-gov-east-1.amazonaws.com s3-website.us-gov-east-1.amazonaws.com s3.dualstack.us-gov-west-1.amazonaws.com s3-accesspoint.dualstack.us-gov-west-1.amazonaws.com s3-accesspoint-fips.dualstack.us-gov-west-1.amazonaws.com s3-fips.dualstack.us-gov-west-1.amazonaws.com s3.us-gov-west-1.amazonaws.com s3-accesspoint.us-gov-west-1.amazonaws.com s3-accesspoint-fips.us-gov-west-1.amazonaws.com s3-fips.us-gov-west-1.amazonaws.com s3-object-lambda.us-gov-west-1.amazonaws.com s3-website.us-gov-west-1.amazonaws.com s3.dualstack.us-west-1.amazonaws.com s3-accesspoint.dualstack.us-west-1.amazonaws.com s3-accesspoint-fips.dualstack.us-west-1.amazonaws.com s3-fips.dualstack.us-west-1.amazonaws.com s3-website.dualstack.us-west-1.amazonaws.com s3.us-west-1.amazonaws.com s3-accesspoint.us-west-1.amazonaws.com s3-accesspoint-fips.us-west-1.amazonaws.com s3-fips.us-west-1.amazonaws.com s3-object-lambda.us-west-1.amazonaws.com s3-website.us-west-1.amazonaws.com s3.dualstack.us-west-2.amazonaws.com s3-accesspoint.dualstack.us-west-2.amazonaws.com s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com s3-fips.dualstack.us-west-2.amazonaws.com s3-website.dualstack.us-west-2.amazonaws.com s3.us-west-2.amazonaws.com s3-accesspoint.us-west-2.amazonaws.com s3-accesspoint-fips.us-west-2.amazonaws.com s3-deprecated.us-west-2.amazonaws.com s3-fips.us-west-2.amazonaws.com s3-object-lambda.us-west-2.amazonaws.com s3-website.us-west-2.amazonaws.com labeling.ap-northeast-1.sagemaker.aws labeling.ap-northeast-2.sagemaker.aws labeling.ap-south-1.sagemaker.aws labeling.ap-southeast-1.sagemaker.aws labeling.ap-southeast-2.sagemaker.aws labeling.ca-central-1.sagemaker.aws labeling.eu-central-1.sagemaker.aws labeling.eu-west-1.sagemaker.aws labeling.eu-west-2.sagemaker.aws labeling.us-east-1.sagemaker.aws labeling.us-east-2.sagemaker.aws labeling.us-west-2.sagemaker.aws notebook.af-south-1.sagemaker.aws notebook.ap-east-1.sagemaker.aws notebook.ap-northeast-1.sagemaker.aws notebook.ap-northeast-2.sagemaker.aws notebook.ap-northeast-3.sagemaker.aws notebook.ap-south-1.sagemaker.aws notebook.ap-south-2.sagemaker.aws notebook.ap-southeast-1.sagemaker.aws notebook.ap-southeast-2.sagemaker.aws notebook.ap-southeast-3.sagemaker.aws notebook.ap-southeast-4.sagemaker.aws notebook.ca-central-1.sagemaker.aws notebook-fips.ca-central-1.sagemaker.aws notebook.ca-west-1.sagemaker.aws notebook-fips.ca-west-1.sagemaker.aws notebook.eu-central-1.sagemaker.aws notebook.eu-central-2.sagemaker.aws notebook.eu-north-1.sagemaker.aws notebook.eu-south-1.sagemaker.aws notebook.eu-south-2.sagemaker.aws notebook.eu-west-1.sagemaker.aws notebook.eu-west-2.sagemaker.aws notebook.eu-west-3.sagemaker.aws notebook.il-central-1.sagemaker.aws notebook.me-central-1.sagemaker.aws notebook.me-south-1.sagemaker.aws notebook.sa-east-1.sagemaker.aws notebook.us-east-1.sagemaker.aws notebook-fips.us-east-1.sagemaker.aws notebook.us-east-2.sagemaker.aws notebook-fips.us-east-2.sagemaker.aws notebook.us-gov-east-1.sagemaker.aws notebook-fips.us-gov-east-1.sagemaker.aws notebook.us-gov-west-1.sagemaker.aws notebook-fips.us-gov-west-1.sagemaker.aws notebook.us-west-1.sagemaker.aws notebook-fips.us-west-1.sagemaker.aws notebook.us-west-2.sagemaker.aws notebook-fips.us-west-2.sagemaker.aws notebook.cn-north-1.sagemaker.com.cn notebook.cn-northwest-1.sagemaker.com.cn studio.af-south-1.sagemaker.aws studio.ap-east-1.sagemaker.aws studio.ap-northeast-1.sagemaker.aws studio.ap-northeast-2.sagemaker.aws studio.ap-northeast-3.sagemaker.aws studio.ap-south-1.sagemaker.aws studio.ap-southeast-1.sagemaker.aws studio.ap-southeast-2.sagemaker.aws studio.ap-southeast-3.sagemaker.aws studio.ca-central-1.sagemaker.aws studio.eu-central-1.sagemaker.aws studio.eu-north-1.sagemaker.aws studio.eu-south-1.sagemaker.aws studio.eu-south-2.sagemaker.aws studio.eu-west-1.sagemaker.aws studio.eu-west-2.sagemaker.aws studio.eu-west-3.sagemaker.aws studio.il-central-1.sagemaker.aws studio.me-central-1.sagemaker.aws studio.me-south-1.sagemaker.aws studio.sa-east-1.sagemaker.aws studio.us-east-1.sagemaker.aws studio.us-east-2.sagemaker.aws studio.us-gov-east-1.sagemaker.aws studio-fips.us-gov-east-1.sagemaker.aws studio.us-gov-west-1.sagemaker.aws studio-fips.us-gov-west-1.sagemaker.aws studio.us-west-1.sagemaker.aws studio.us-west-2.sagemaker.aws studio.cn-north-1.sagemaker.com.cn studio.cn-northwest-1.sagemaker.com.cn *.experiments.sagemaker.aws analytics-gateway.ap-northeast-1.amazonaws.com analytics-gateway.ap-northeast-2.amazonaws.com analytics-gateway.ap-south-1.amazonaws.com analytics-gateway.ap-southeast-1.amazonaws.com analytics-gateway.ap-southeast-2.amazonaws.com analytics-gateway.eu-central-1.amazonaws.com analytics-gateway.eu-west-1.amazonaws.com analytics-gateway.us-east-1.amazonaws.com analytics-gateway.us-east-2.amazonaws.com analytics-gateway.us-west-2.amazonaws.com amplifyapp.com *.awsapprunner.com webview-assets.aws-cloud9.af-south-1.amazonaws.com vfs.cloud9.af-south-1.amazonaws.com webview-assets.cloud9.af-south-1.amazonaws.com webview-assets.aws-cloud9.ap-east-1.amazonaws.com vfs.cloud9.ap-east-1.amazonaws.com webview-assets.cloud9.ap-east-1.amazonaws.com webview-assets.aws-cloud9.ap-northeast-1.amazonaws.com vfs.cloud9.ap-northeast-1.amazonaws.com webview-assets.cloud9.ap-northeast-1.amazonaws.com webview-assets.aws-cloud9.ap-northeast-2.amazonaws.com vfs.cloud9.ap-northeast-2.amazonaws.com webview-assets.cloud9.ap-northeast-2.amazonaws.com webview-assets.aws-cloud9.ap-northeast-3.amazonaws.com vfs.cloud9.ap-northeast-3.amazonaws.com webview-assets.cloud9.ap-northeast-3.amazonaws.com webview-assets.aws-cloud9.ap-south-1.amazonaws.com vfs.cloud9.ap-south-1.amazonaws.com webview-assets.cloud9.ap-south-1.amazonaws.com webview-assets.aws-cloud9.ap-southeast-1.amazonaws.com vfs.cloud9.ap-southeast-1.amazonaws.com webview-assets.cloud9.ap-southeast-1.amazonaws.com webview-assets.aws-cloud9.ap-southeast-2.amazonaws.com vfs.cloud9.ap-southeast-2.amazonaws.com webview-assets.cloud9.ap-southeast-2.amazonaws.com webview-assets.aws-cloud9.ca-central-1.amazonaws.com vfs.cloud9.ca-central-1.amazonaws.com webview-assets.cloud9.ca-central-1.amazonaws.com webview-assets.aws-cloud9.eu-central-1.amazonaws.com vfs.cloud9.eu-central-1.amazonaws.com webview-assets.cloud9.eu-central-1.amazonaws.com webview-assets.aws-cloud9.eu-north-1.amazonaws.com vfs.cloud9.eu-north-1.amazonaws.com webview-assets.cloud9.eu-north-1.amazonaws.com webview-assets.aws-cloud9.eu-south-1.amazonaws.com vfs.cloud9.eu-south-1.amazonaws.com webview-assets.cloud9.eu-south-1.amazonaws.com webview-assets.aws-cloud9.eu-west-1.amazonaws.com vfs.cloud9.eu-west-1.amazonaws.com webview-assets.cloud9.eu-west-1.amazonaws.com webview-assets.aws-cloud9.eu-west-2.amazonaws.com vfs.cloud9.eu-west-2.amazonaws.com webview-assets.cloud9.eu-west-2.amazonaws.com webview-assets.aws-cloud9.eu-west-3.amazonaws.com vfs.cloud9.eu-west-3.amazonaws.com webview-assets.cloud9.eu-west-3.amazonaws.com webview-assets.aws-cloud9.il-central-1.amazonaws.com vfs.cloud9.il-central-1.amazonaws.com webview-assets.aws-cloud9.me-south-1.amazonaws.com vfs.cloud9.me-south-1.amazonaws.com webview-assets.cloud9.me-south-1.amazonaws.com webview-assets.aws-cloud9.sa-east-1.amazonaws.com vfs.cloud9.sa-east-1.amazonaws.com webview-assets.cloud9.sa-east-1.amazonaws.com webview-assets.aws-cloud9.us-east-1.amazonaws.com vfs.cloud9.us-east-1.amazonaws.com webview-assets.cloud9.us-east-1.amazonaws.com webview-assets.aws-cloud9.us-east-2.amazonaws.com vfs.cloud9.us-east-2.amazonaws.com webview-assets.cloud9.us-east-2.amazonaws.com webview-assets.aws-cloud9.us-west-1.amazonaws.com vfs.cloud9.us-west-1.amazonaws.com webview-assets.cloud9.us-west-1.amazonaws.com webview-assets.aws-cloud9.us-west-2.amazonaws.com vfs.cloud9.us-west-2.amazonaws.com webview-assets.cloud9.us-west-2.amazonaws.com awsapps.com cn-north-1.eb.amazonaws.com.cn cn-northwest-1.eb.amazonaws.com.cn elasticbeanstalk.com af-south-1.elasticbeanstalk.com ap-east-1.elasticbeanstalk.com ap-northeast-1.elasticbeanstalk.com ap-northeast-2.elasticbeanstalk.com ap-northeast-3.elasticbeanstalk.com ap-south-1.elasticbeanstalk.com ap-southeast-1.elasticbeanstalk.com ap-southeast-2.elasticbeanstalk.com ap-southeast-3.elasticbeanstalk.com ca-central-1.elasticbeanstalk.com eu-central-1.elasticbeanstalk.com eu-north-1.elasticbeanstalk.com eu-south-1.elasticbeanstalk.com eu-west-1.elasticbeanstalk.com eu-west-2.elasticbeanstalk.com eu-west-3.elasticbeanstalk.com il-central-1.elasticbeanstalk.com me-south-1.elasticbeanstalk.com sa-east-1.elasticbeanstalk.com us-east-1.elasticbeanstalk.com us-east-2.elasticbeanstalk.com us-gov-east-1.elasticbeanstalk.com us-gov-west-1.elasticbeanstalk.com us-west-1.elasticbeanstalk.com us-west-2.elasticbeanstalk.com *.elb.amazonaws.com.cn *.elb.amazonaws.com awsglobalaccelerator.com *.private.repost.aws eero.online eero-stage.online apigee.io panel.dev siiites.com appspacehosted.com appspaceusercontent.com appudo.net on-aptible.com f5.si arvanedge.ir user.aseinet.ne.jp gv.vc d.gv.vc user.party.eus pimienta.org poivron.org potager.org sweetpepper.org myasustor.com cdn.prod.atlassian-dev.net translated.page myfritz.link myfritz.net onavstack.net *.awdev.ca *.advisor.ws ecommerce-shop.pl b-data.io balena-devices.com base.ec official.ec buyshop.jp fashionstore.jp handcrafted.jp kawaiishop.jp supersale.jp theshop.jp shopselect.net base.shop beagleboard.io *.beget.app pages.gay bnr.la bitbucket.io blackbaudcdn.net of.je bluebite.io boomla.net boutir.com boxfuse.io square7.ch bplaced.com bplaced.de square7.de bplaced.net square7.net *.s.brave.io shop.brendly.hr shop.brendly.rs browsersafetymark.io radio.am radio.fm uk0.bigv.io dh.bytemark.co.uk vm.bytemark.co.uk cafjs.com canva-apps.cn *.my.canvasite.cn canva-apps.com *.my.canva.site drr.ac uwu.ai carrd.co crd.co ju.mp api.gov.uk cdn77-storage.com rsc.contentproxy9.cz r.cdn77.net cdn77-ssl.net c.cdn77.org rsc.cdn77.org ssl.origin.cdn77-secure.org za.bz br.com cn.com de.com eu.com jpn.com mex.com ru.com sa.com uk.com us.com za.com com.de gb.net hu.net jp.net se.net uk.net ae.org com.se cx.ua discourse.group discourse.team clerk.app clerkstage.app *.lcl.dev *.lclstage.dev *.stg.dev *.stgstage.dev cleverapps.cc *.services.clever-cloud.com cleverapps.io cleverapps.tech clickrising.net cloudns.asia cloudns.be cloud-ip.biz cloudns.biz cloudns.cc cloudns.ch cloudns.cl cloudns.club dnsabr.com ip-ddns.com cloudns.cx cloudns.eu cloudns.in cloudns.info ddns-ip.net dns-cloud.net dns-dynamic.net cloudns.nz cloudns.org ip-dynamic.org cloudns.ph cloudns.pro cloudns.pw cloudns.us c66.me cloud66.ws cloud66.zone jdevcloud.com wpdevcloud.com cloudaccess.host freesite.host cloudaccess.net *.cloudera.site cf-ipfs.com cloudflare-ipfs.com trycloudflare.com pages.dev r2.dev workers.dev cloudflare.net cdn.cloudflare.net cdn.cloudflareanycast.net cdn.cloudflarecn.net cdn.cloudflareglobal.net cust.cloudscale.ch objects.lpg.cloudscale.ch objects.rma.cloudscale.ch wnext.app cnpy.gdn *.otap.co co.ca co.com codeberg.page csb.app preview.csb.app co.nl co.no webhosting.be hosting-cluster.nl ctfcloud.net convex.site ac.ru edu.ru gov.ru int.ru mil.ru test.ru dyn.cosidns.de dnsupdater.de dynamisches-dns.de internet-dns.de l-o-g-i-n.de dynamic-dns.info feste-ip.net knx-server.net static-access.net craft.me realm.cz on.crisp.email *.cryptonomic.net curv.dev cfolks.pl cyon.link cyon.site platform0.app fnwk.site folionetwork.site biz.dk co.dk firm.dk reg.dk store.dk dyndns.dappnode.io builtwithdark.com darklang.io demo.datadetect.com instance.datadetect.com edgestack.me dattolocal.com dattorelay.com dattoweb.com mydatto.com dattolocal.net mydatto.net ddnss.de dyn.ddnss.de dyndns.ddnss.de dyn-ip24.de dyndns1.de home-webserver.de dyn.home-webserver.de myhome-server.de ddnss.org debian.net definima.io definima.net deno.dev deno-staging.dev dedyn.io deta.app deta.dev dfirma.pl dkonto.pl you2.pl ondigitalocean.app *.digitaloceanspaces.com us.kg rss.my.id diher.solutions discordsays.com discordsez.com jozi.biz dnshome.de online.th shop.th drayddns.com shoparena.pl dreamhosters.com durumis.com mydrobo.com drud.io drud.us duckdns.org dy.fi tunk.org dyndns.biz for-better.biz for-more.biz for-some.biz for-the.biz selfip.biz webhop.biz ftpaccess.cc game-server.cc myphotos.cc scrapping.cc blogdns.com cechire.com dnsalias.com dnsdojo.com doesntexist.com dontexist.com doomdns.com dyn-o-saur.com dynalias.com dyndns-at-home.com dyndns-at-work.com dyndns-blog.com dyndns-free.com dyndns-home.com dyndns-ip.com dyndns-mail.com dyndns-office.com dyndns-pics.com dyndns-remote.com dyndns-server.com dyndns-web.com dyndns-wiki.com dyndns-work.com est-a-la-maison.com est-a-la-masion.com est-le-patron.com est-mon-blogueur.com from-ak.com from-al.com from-ar.com from-ca.com from-ct.com from-dc.com from-de.com from-fl.com from-ga.com from-hi.com from-ia.com from-id.com from-il.com from-in.com from-ks.com from-ky.com from-ma.com from-md.com from-mi.com from-mn.com from-mo.com from-ms.com from-mt.com from-nc.com from-nd.com from-ne.com from-nh.com from-nj.com from-nm.com from-nv.com from-oh.com from-ok.com from-or.com from-pa.com from-pr.com from-ri.com from-sc.com from-sd.com from-tn.com from-tx.com from-ut.com from-va.com from-vt.com from-wa.com from-wi.com from-wv.com from-wy.com getmyip.com gotdns.com hobby-site.com homelinux.com homeunix.com iamallama.com is-a-anarchist.com is-a-blogger.com is-a-bookkeeper.com is-a-bulls-fan.com is-a-caterer.com is-a-chef.com is-a-conservative.com is-a-cpa.com is-a-cubicle-slave.com is-a-democrat.com is-a-designer.com is-a-doctor.com is-a-financialadvisor.com is-a-geek.com is-a-green.com is-a-guru.com is-a-hard-worker.com is-a-hunter.com is-a-landscaper.com is-a-lawyer.com is-a-liberal.com is-a-libertarian.com is-a-llama.com is-a-musician.com is-a-nascarfan.com is-a-nurse.com is-a-painter.com is-a-personaltrainer.com is-a-photographer.com is-a-player.com is-a-republican.com is-a-rockstar.com is-a-socialist.com is-a-student.com is-a-teacher.com is-a-techie.com is-a-therapist.com is-an-accountant.com is-an-actor.com is-an-actress.com is-an-anarchist.com is-an-artist.com is-an-engineer.com is-an-entertainer.com is-certified.com is-gone.com is-into-anime.com is-into-cars.com is-into-cartoons.com is-into-games.com is-leet.com is-not-certified.com is-slick.com is-uberleet.com is-with-theband.com isa-geek.com isa-hockeynut.com issmarterthanyou.com likes-pie.com likescandy.com neat-url.com saves-the-whales.com selfip.com sells-for-less.com sells-for-u.com servebbs.com simple-url.com space-to-rent.com teaches-yoga.com writesthisblog.com ath.cx fuettertdasnetz.de isteingeek.de istmein.de lebtimnetz.de leitungsen.de traeumtgerade.de barrel-of-knowledge.info barrell-of-knowledge.info dyndns.info for-our.info groks-the.info groks-this.info here-for-more.info knowsitall.info selfip.info webhop.info forgot.her.name forgot.his.name at-band-camp.net blogdns.net broke-it.net buyshouses.net dnsalias.net dnsdojo.net does-it.net dontexist.net dynalias.net dynathome.net endofinternet.net from-az.net from-co.net from-la.net from-ny.net gets-it.net ham-radio-op.net homeftp.net homeip.net homelinux.net homeunix.net in-the-band.net is-a-chef.net is-a-geek.net isa-geek.net kicks-ass.net office-on-the.net podzone.net scrapper-site.net selfip.net sells-it.net servebbs.net serveftp.net thruhere.net webhop.net merseine.nu mine.nu shacknet.nu blogdns.org blogsite.org boldlygoingnowhere.org dnsalias.org dnsdojo.org doesntexist.org dontexist.org doomdns.org dvrdns.org dynalias.org dyndns.org go.dyndns.org home.dyndns.org endofinternet.org endoftheinternet.org from-me.org game-host.org gotdns.org hobby-site.org homedns.org homeftp.org homelinux.org homeunix.org is-a-bruinsfan.org is-a-candidate.org is-a-celticsfan.org is-a-chef.org is-a-geek.org is-a-knight.org is-a-linux-user.org is-a-patsfan.org is-a-soxfan.org is-found.org is-lost.org is-saved.org is-very-bad.org is-very-evil.org is-very-good.org is-very-nice.org is-very-sweet.org isa-geek.org kicks-ass.org misconfused.org podzone.org readmyblog.org selfip.org sellsyourhome.org servebbs.org serveftp.org servegame.org stuff-4-sale.org webhop.org better-than.tv dyndns.tv on-the-web.tv worse-than.tv is-by.us land-4-sale.us stuff-4-sale.us dyndns.ws mypets.ws ddnsfree.com ddnsgeek.com giize.com gleeze.com kozow.com loseyourip.com ooguy.com theworkpc.com casacam.net dynu.net accesscam.org camdvr.org freeddns.org mywire.org webredirect.org myddns.rocks dynv6.net e4.cz easypanel.app easypanel.host *.ewp.live twmail.cc twmail.net twmail.org mymailer.com.tw url.tw at.emf.camp rt.ht elementor.cloud elementor.cool en-root.fr mytuleap.com tuleap-partners.com encr.app encoreapi.com eu.encoway.cloud eu.org al.eu.org asso.eu.org at.eu.org au.eu.org be.eu.org bg.eu.org ca.eu.org cd.eu.org ch.eu.org cn.eu.org cy.eu.org cz.eu.org de.eu.org dk.eu.org edu.eu.org ee.eu.org es.eu.org fi.eu.org fr.eu.org gr.eu.org hr.eu.org hu.eu.org ie.eu.org il.eu.org in.eu.org int.eu.org is.eu.org it.eu.org jp.eu.org kr.eu.org lt.eu.org lu.eu.org lv.eu.org me.eu.org mk.eu.org mt.eu.org my.eu.org net.eu.org ng.eu.org nl.eu.org no.eu.org nz.eu.org pl.eu.org pt.eu.org ro.eu.org ru.eu.org se.eu.org si.eu.org sk.eu.org tr.eu.org uk.eu.org us.eu.org eurodir.ru eu-1.evennode.com eu-2.evennode.com eu-3.evennode.com eu-4.evennode.com us-1.evennode.com us-2.evennode.com us-3.evennode.com us-4.evennode.com relay.evervault.app relay.evervault.dev expo.app staging.expo.app onfabrica.com ru.net adygeya.ru bashkiria.ru bir.ru cbg.ru com.ru dagestan.ru grozny.ru kalmykia.ru kustanai.ru marine.ru mordovia.ru msk.ru mytis.ru nalchik.ru nov.ru pyatigorsk.ru spb.ru vladikavkaz.ru vladimir.ru abkhazia.su adygeya.su aktyubinsk.su arkhangelsk.su armenia.su ashgabad.su azerbaijan.su balashov.su bashkiria.su bryansk.su bukhara.su chimkent.su dagestan.su east-kazakhstan.su exnet.su georgia.su grozny.su ivanovo.su jambyl.su kalmykia.su kaluga.su karacol.su karaganda.su karelia.su khakassia.su krasnodar.su kurgan.su kustanai.su lenug.su mangyshlak.su mordovia.su msk.su murmansk.su nalchik.su navoi.su north-kazakhstan.su nov.su obninsk.su penza.su pokrovsk.su sochi.su spb.su tashkent.su termez.su togliatti.su troitsk.su tselinograd.su tula.su tuva.su vladikavkaz.su vladimir.su vologda.su channelsdvr.net u.channelsdvr.net edgecompute.app fastly-edge.com fastly-terrarium.com freetls.fastly.net map.fastly.net a.prod.fastly.net global.prod.fastly.net a.ssl.fastly.net b.ssl.fastly.net global.ssl.fastly.net fastlylb.net map.fastlylb.net *.user.fm fastvps-server.com fastvps.host myfast.host fastvps.site myfast.space conn.uk copro.uk hosp.uk fedorainfracloud.org fedorapeople.org cloud.fedoraproject.org app.os.fedoraproject.org app.os.stg.fedoraproject.org mydobiss.com fh-muenster.io filegear.me firebaseapp.com fldrv.com flutterflow.app fly.dev shw.io edgeapp.net forgeblocks.com id.forgerock.io framer.ai framer.app framercanvas.com framer.media framer.photos framer.website framer.wiki 0e.vc freebox-os.com freeboxos.com fbx-os.fr fbxos.fr freebox-os.fr freeboxos.fr freedesktop.org freemyip.com *.frusky.de wien.funkfeuer.at daemon.asia dix.asia mydns.bz 0am.jp 0g0.jp 0j0.jp 0t0.jp mydns.jp pgw.jp wjg.jp keyword-on.net live-on.net server-on.net mydns.tw mydns.vc *.futurecms.at *.ex.futurecms.at *.in.futurecms.at futurehosting.at futuremailing.at *.ex.ortsinfo.at *.kunden.ortsinfo.at *.statics.cloud aliases121.com campaign.gov.uk service.gov.uk independent-commission.uk independent-inquest.uk independent-inquiry.uk independent-panel.uk independent-review.uk public-inquiry.uk royal-commission.uk gehirn.ne.jp usercontent.jp gentapps.com gentlentapis.com lab.ms cdn-edges.net localcert.net localhostcert.net gsj.bz githubusercontent.com githubpreview.dev github.io gitlab.io gitapp.si gitpage.si glitch.me nog.community co.ro shop.ro lolipop.io angry.jp babyblue.jp babymilk.jp backdrop.jp bambina.jp bitter.jp blush.jp boo.jp boy.jp boyfriend.jp but.jp candypop.jp capoo.jp catfood.jp cheap.jp chicappa.jp chillout.jp chips.jp chowder.jp chu.jp ciao.jp cocotte.jp coolblog.jp cranky.jp cutegirl.jp daa.jp deca.jp deci.jp digick.jp egoism.jp fakefur.jp fem.jp flier.jp floppy.jp fool.jp frenchkiss.jp girlfriend.jp girly.jp gloomy.jp gonna.jp greater.jp hacca.jp heavy.jp her.jp hiho.jp hippy.jp holy.jp hungry.jp icurus.jp itigo.jp jellybean.jp kikirara.jp kill.jp kilo.jp kuron.jp littlestar.jp lolipopmc.jp lolitapunk.jp lomo.jp lovepop.jp lovesick.jp main.jp mods.jp mond.jp mongolian.jp moo.jp namaste.jp nikita.jp nobushi.jp noor.jp oops.jp parallel.jp parasite.jp pecori.jp peewee.jp penne.jp pepper.jp perma.jp pigboat.jp pinoko.jp punyu.jp pupu.jp pussycat.jp pya.jp raindrop.jp readymade.jp sadist.jp schoolbus.jp secret.jp staba.jp stripper.jp sub.jp sunnyday.jp thick.jp tonkotsu.jp under.jp upper.jp velvet.jp verse.jp versus.jp vivian.jp watson.jp weblike.jp whitesnow.jp zombie.jp heteml.net graphic.design goip.de blogspot.ae blogspot.al blogspot.am *.hosted.app *.run.app web.app blogspot.com.ar blogspot.co.at blogspot.com.au blogspot.ba blogspot.be blogspot.bg blogspot.bj blogspot.com.br blogspot.com.by blogspot.ca blogspot.cf blogspot.ch blogspot.cl blogspot.com.co *.0emm.com appspot.com *.r.appspot.com blogspot.com codespot.com googleapis.com googlecode.com pagespeedmobilizer.com withgoogle.com withyoutube.com blogspot.cv blogspot.com.cy blogspot.cz blogspot.de *.gateway.dev blogspot.dk blogspot.com.ee blogspot.com.eg blogspot.com.es blogspot.fi blogspot.fr cloud.goog translate.goog *.usercontent.goog blogspot.gr blogspot.hk blogspot.hr blogspot.hu blogspot.co.id blogspot.ie blogspot.co.il blogspot.in blogspot.is blogspot.it blogspot.jp blogspot.co.ke blogspot.kr blogspot.li blogspot.lt blogspot.lu blogspot.md blogspot.mk blogspot.com.mt blogspot.mx blogspot.my cloudfunctions.net blogspot.com.ng blogspot.nl blogspot.no blogspot.co.nz blogspot.pe blogspot.pt blogspot.qa blogspot.re blogspot.ro blogspot.rs blogspot.ru blogspot.se blogspot.sg blogspot.si blogspot.sk blogspot.sn blogspot.td blogspot.com.tr blogspot.tw blogspot.ug blogspot.co.uk blogspot.com.uy blogspot.vn blogspot.co.za goupile.fr pymnt.uk cloudapps.digital london.cloudapps.digital gov.nl grafana-dev.net grayjayleagues.com g\u00fcnstigbestellen.de g\u00fcnstigliefern.de fin.ci free.hr caa.li ua.rs conf.se h\u00e4kkinen.fi hrsn.dev hashbang.sh hasura.app hasura-app.io hatenablog.com hatenadiary.com hateblo.jp hatenablog.jp hatenadiary.jp hatenadiary.org pages.it.hs-heilbronn.de pages-research.it.hs-heilbronn.de heiyu.space helioho.st heliohost.us hepforge.org herokuapp.com herokussl.com heyflow.page heyflow.site ravendb.cloud ravendb.community development.run ravendb.run homesklep.pl *.kin.one *.id.pub *.kin.pub secaas.hk hoplix.shop orx.biz biz.gl biz.ng co.biz.ng dl.biz.ng go.biz.ng lg.biz.ng on.biz.ng col.ng firm.ng gen.ng ltd.ng ngo.ng plc.ng ie.ua hostyhosting.io hf.space static.hf.space hypernode.io iobb.net co.cz *.moonscale.io moonscale.net gr.com iki.fi ibxos.it iliadboxos.it smushcdn.com wphostedmail.com wpmucdn.com tempurl.host wpmudev.host dyn-berlin.de in-berlin.de in-brb.de in-butter.de in-dsl.de in-vpn.de in-dsl.net in-vpn.net in-dsl.org in-vpn.org biz.at info.at info.cx ac.leg.br al.leg.br am.leg.br ap.leg.br ba.leg.br ce.leg.br df.leg.br es.leg.br go.leg.br ma.leg.br mg.leg.br ms.leg.br mt.leg.br pa.leg.br pb.leg.br pe.leg.br pi.leg.br pr.leg.br rj.leg.br rn.leg.br ro.leg.br rr.leg.br rs.leg.br sc.leg.br se.leg.br sp.leg.br to.leg.br pixolino.com na4u.ru apps-1and1.com live-website.com apps-1and1.net websitebuilder.online app-ionos.space iopsys.se *.dweb.link ipifony.net ir.md is-a-good.dev is-a.dev iservschule.de mein-iserv.de schulplattform.de schulserver.de test-iserv.de iserv.dev mel.cloudlets.com.au cloud.interhostsolutions.be alp1.ae.flow.ch appengine.flow.ch es-1.axarnet.cloud diadem.cloud vip.jelastic.cloud jele.cloud it1.eur.aruba.jenv-aruba.cloud it1.jenv-aruba.cloud keliweb.cloud cs.keliweb.cloud oxa.cloud tn.oxa.cloud uk.oxa.cloud primetel.cloud uk.primetel.cloud ca.reclaim.cloud uk.reclaim.cloud us.reclaim.cloud ch.trendhosting.cloud de.trendhosting.cloud jele.club dopaas.com paas.hosted-by-previder.com rag-cloud.hosteur.com rag-cloud-ch.hosteur.com jcloud.ik-server.com jcloud-ver-jpc.ik-server.com demo.jelastic.com paas.massivegrid.com jed.wafaicloud.com ryd.wafaicloud.com j.scaleforce.com.cy jelastic.dogado.eu fi.cloudplatform.fi demo.datacenter.fi paas.datacenter.fi jele.host mircloud.host paas.beebyte.io sekd1.beebyteapp.io jele.io jc.neen.it jcloud.kz cloudjiffy.net fra1-de.cloudjiffy.net west1-us.cloudjiffy.net jls-sto1.elastx.net jls-sto2.elastx.net jls-sto3.elastx.net fr-1.paas.massivegrid.net lon-1.paas.massivegrid.net lon-2.paas.massivegrid.net ny-1.paas.massivegrid.net ny-2.paas.massivegrid.net sg-1.paas.massivegrid.net jelastic.saveincloud.net nordeste-idc.saveincloud.net j.scaleforce.net sdscloud.pl unicloud.pl mircloud.ru enscaled.sg jele.site jelastic.team orangecloud.tn j.layershift.co.uk phx.enscaled.us mircloud.us myjino.ru *.hosting.myjino.ru *.landing.myjino.ru *.spectrum.myjino.ru *.vps.myjino.ru jotelulu.cloud webadorsite.com jouwweb.site *.cns.joyent.com *.triton.zone js.org kaas.gg khplay.nl kapsi.fi ezproxy.kuleuven.be kuleuven.cloud keymachine.de kinghost.net uni5.net knightpoint.systems koobin.events webthings.io krellian.net oya.to git-repos.de lcube-server.de svn-repos.de leadpages.co lpages.co lpusercontent.com lelux.site libp2p.direct runcontainers.dev co.business co.education co.events co.financial co.network co.place co.technology linkyard-cloud.ch linkyard.cloud members.linode.com *.nodebalancer.linode.com *.linodeobjects.com ip.linodeusercontent.com we.bs filegear-sg.me ggff.net *.user.localcert.dev lodz.pl pabianice.pl plock.pl sieradz.pl skierniewice.pl zgierz.pl loginline.app loginline.dev loginline.io loginline.services loginline.site lohmus.me servers.run krasnik.pl leczna.pl lubartow.pl lublin.pl poniatowa.pl swidnik.pl glug.org.uk lug.org.uk lugs.org.uk barsy.bg barsy.club barsycenter.com barsyonline.com barsy.de barsy.dev barsy.eu barsy.gr barsy.in barsy.info barsy.io barsy.me barsy.menu barsyonline.menu barsy.mobi barsy.net barsy.online barsy.org barsy.pro barsy.pub barsy.ro barsy.rs barsy.shop barsyonline.shop barsy.site barsy.store barsy.support barsy.uk barsy.co.uk barsyonline.co.uk *.magentosite.cloud hb.cldmail.ru matlab.cloud modelscape.com mwcloudnonprod.com polyspace.com mayfirst.info mayfirst.org mazeplay.com mcdir.me mcdir.ru vps.mcdir.ru mcpre.ru mediatech.by mediatech.dev hra.health medusajs.app miniserver.com memset.net messerli.app atmeta.com apps.fbsbx.com *.cloud.metacentrum.cz custom.metacentrum.cz flt.cloud.muni.cz usr.cloud.muni.cz meteorapp.com eu.meteorapp.com co.pl *.azurecontainer.io azure-api.net azure-mobile.net azureedge.net azurefd.net azurestaticapps.net 1.azurestaticapps.net 2.azurestaticapps.net 3.azurestaticapps.net 4.azurestaticapps.net 5.azurestaticapps.net 6.azurestaticapps.net 7.azurestaticapps.net centralus.azurestaticapps.net eastasia.azurestaticapps.net eastus2.azurestaticapps.net westeurope.azurestaticapps.net westus2.azurestaticapps.net azurewebsites.net cloudapp.net trafficmanager.net blob.core.windows.net servicebus.windows.net routingthecloud.com sn.mynetname.net routingthecloud.net routingthecloud.org csx.cc mydbserver.com webspaceconfig.de mittwald.info mittwaldserver.info typo3server.info project.space modx.dev bmoattachments.org net.ru org.ru pp.ru hostedpi.com caracal.mythic-beasts.com customer.mythic-beasts.com fentiger.mythic-beasts.com lynx.mythic-beasts.com ocelot.mythic-beasts.com oncilla.mythic-beasts.com onza.mythic-beasts.com sphinx.mythic-beasts.com vs.mythic-beasts.com x.mythic-beasts.com yali.mythic-beasts.com cust.retrosnub.co.uk ui.nabu.casa cloud.nospamproxy.com netfy.app netlify.app 4u.com nfshost.com ipfs.nftstorage.link ngo.us ngrok.app ngrok-free.app ngrok.dev ngrok-free.dev ngrok.io ap.ngrok.io au.ngrok.io eu.ngrok.io in.ngrok.io jp.ngrok.io sa.ngrok.io us.ngrok.io ngrok.pizza ngrok.pro torun.pl nh-serv.co.uk nimsite.uk mmafan.biz myftp.biz no-ip.biz no-ip.ca fantasyleague.cc gotdns.ch 3utilities.com blogsyte.com ciscofreak.com damnserver.com ddnsking.com ditchyourip.com dnsiskinky.com dynns.com geekgalaxy.com health-carereform.com homesecuritymac.com homesecuritypc.com myactivedirectory.com mysecuritycamera.com myvnc.com net-freaks.com onthewifi.com point2this.com quicksytes.com securitytactics.com servebeer.com servecounterstrike.com serveexchange.com serveftp.com servegame.com servehalflife.com servehttp.com servehumour.com serveirc.com servemp3.com servep2p.com servepics.com servequake.com servesarcasm.com stufftoread.com unusualperson.com workisboring.com dvrcam.info ilovecollege.info no-ip.info brasilia.me ddns.me dnsfor.me hopto.me loginto.me noip.me webhop.me bounceme.net ddns.net eating-organic.net mydissent.net myeffect.net mymediapc.net mypsx.net mysecuritycamera.net nhlfan.net no-ip.net pgafan.net privatizehealthinsurance.net redirectme.net serveblog.net serveminecraft.net sytes.net cable-modem.org collegefan.org couchpotatofries.org hopto.org mlbfan.org myftp.org mysecuritycamera.org nflfan.org no-ip.org read-books.org ufcfan.org zapto.org no-ip.co.uk golffan.us noip.us pointto.us stage.nodeart.io *.developer.app noop.app *.northflank.app *.build.run *.code.run *.database.run *.migration.run noticeable.news notion.site dnsking.ch mypi.co n4t.co 001www.com myiphost.com forumz.info soundcast.me tcp4.me dnsup.net hicam.net now-dns.net ownip.net vpndns.net dynserv.org now-dns.org x443.pw now-dns.top ntdll.top freeddns.us nsupdate.info nerdpol.ovh nyc.mn prvcy.page obl.ong observablehq.cloud static.observableusercontent.com omg.lol cloudycluster.net omniwe.site 123webseite.at 123website.be simplesite.com.br 123website.ch simplesite.com 123webseite.de 123hjemmeside.dk 123miweb.es 123kotisivu.fi 123siteweb.fr simplesite.gr 123homepage.it 123website.lu 123website.nl 123hjemmeside.no service.one simplesite.pl 123paginaweb.pt 123minsida.se is-a-fullstack.dev is-cool.dev is-not-a.dev localplayer.dev is-local.org opensocial.site opencraft.hosting 16-b.it 32-b.it 64-b.it orsites.com operaunite.com *.customer-oci.com *.oci.customer-oci.com *.ocp.customer-oci.com *.ocs.customer-oci.com *.oraclecloudapps.com *.oraclegovcloudapps.com *.oraclegovcloudapps.uk tech.orange can.re authgear-staging.com authgearapps.com skygearapp.com outsystemscloud.com *.hosting.ovh.net *.webpaas.ovh.net ownprovider.com own.pm *.owo.codes ox.rs oy.lc pgfog.com pagexl.com gotpantheon.com pantheonsite.io *.paywhirl.com *.xmit.co xmit.dev madethis.site srv.us gh.srv.us gl.srv.us lk3.ru mypep.link perspecta.cloud on-web.fr *.upsun.app upsunapp.com ent.platform.sh eu.platform.sh us.platform.sh *.platformsh.site *.tst.site platter-app.com platter-app.dev platterp.us pley.games onporter.run co.bn postman-echo.com pstmn.io mock.pstmn.io httpbin.org prequalifyme.today xen.prgmr.com priv.at protonet.io chirurgiens-dentistes-en-france.fr byen.site pubtls.org pythonanywhere.com eu.pythonanywhere.com qa2.com qcx.io *.sys.qcx.io myqnapcloud.cn alpha-myqnapcloud.com dev-myqnapcloud.com mycloudnas.com mynascloud.com myqnapcloud.com qoto.io qualifioapp.com ladesk.com qbuser.com *.quipelements.com vapor.cloud vaporcloud.io rackmaze.com rackmaze.net cloudsite.builders myradweb.net servername.us web.in in.net myrdbx.io site.rb-hosting.io *.on-rancher.cloud *.on-k3s.io *.on-rio.io ravpage.co.il readthedocs-hosted.com readthedocs.io rhcloud.com instances.spawn.cc onrender.com app.render.com replit.app id.replit.app firewalledreplit.co id.firewalledreplit.co repl.co id.repl.co replit.dev archer.replit.dev bones.replit.dev canary.replit.dev global.replit.dev hacker.replit.dev id.replit.dev janeway.replit.dev kim.replit.dev kira.replit.dev kirk.replit.dev odo.replit.dev paris.replit.dev picard.replit.dev pike.replit.dev prerelease.replit.dev reed.replit.dev riker.replit.dev sisko.replit.dev spock.replit.dev staging.replit.dev sulu.replit.dev tarpit.replit.dev teams.replit.dev tucker.replit.dev wesley.replit.dev worf.replit.dev repl.run resindevice.io devices.resinstaging.io hzc.io adimo.co.uk itcouldbewor.se aus.basketball nz.basketball git-pages.rit.edu rocky.page rub.de ruhr-uni-bochum.de io.noc.ruhr-uni-bochum.de \u0431\u0438\u0437.\u0440\u0443\u0441 \u043a\u043e\u043c.\u0440\u0443\u0441 \u043a\u0440\u044b\u043c.\u0440\u0443\u0441 \u043c\u0438\u0440.\u0440\u0443\u0441 \u043c\u0441\u043a.\u0440\u0443\u0441 \u043e\u0440\u0433.\u0440\u0443\u0441 \u0441\u0430\u043c\u0430\u0440\u0430.\u0440\u0443\u0441 \u0441\u043e\u0447\u0438.\u0440\u0443\u0441 \u0441\u043f\u0431.\u0440\u0443\u0441 \u044f.\u0440\u0443\u0441 ras.ru nyat.app 180r.com dojin.com sakuratan.com sakuraweb.com x0.com 2-d.jp bona.jp crap.jp daynight.jp eek.jp flop.jp halfmoon.jp jeez.jp matrix.jp mimoza.jp ivory.ne.jp mail-box.ne.jp mints.ne.jp mokuren.ne.jp opal.ne.jp sakura.ne.jp sumomo.ne.jp topaz.ne.jp netgamers.jp nyanta.jp o0o0.jp rdy.jp rgr.jp rulez.jp s3.isk01.sakurastorage.jp s3.isk02.sakurastorage.jp saloon.jp sblo.jp skr.jp tank.jp uh-oh.jp undo.jp rs.webaccel.jp user.webaccel.jp websozai.jp xii.jp squares.net jpn.org kirara.st x0.to from.tv sakura.tv *.builder.code.com *.dev-builder.code.com *.stg-builder.code.com *.001.test.code-builder-stg.platform.salesforce.com *.d.crm.dev *.w.crm.dev *.wa.crm.dev *.wb.crm.dev *.wc.crm.dev *.wd.crm.dev *.we.crm.dev *.wf.crm.dev sandcats.io logoip.com logoip.de fr-par-1.baremetal.scw.cloud fr-par-2.baremetal.scw.cloud nl-ams-1.baremetal.scw.cloud cockpit.fr-par.scw.cloud fnc.fr-par.scw.cloud functions.fnc.fr-par.scw.cloud k8s.fr-par.scw.cloud nodes.k8s.fr-par.scw.cloud s3.fr-par.scw.cloud s3-website.fr-par.scw.cloud whm.fr-par.scw.cloud priv.instances.scw.cloud pub.instances.scw.cloud k8s.scw.cloud cockpit.nl-ams.scw.cloud k8s.nl-ams.scw.cloud nodes.k8s.nl-ams.scw.cloud s3.nl-ams.scw.cloud s3-website.nl-ams.scw.cloud whm.nl-ams.scw.cloud cockpit.pl-waw.scw.cloud k8s.pl-waw.scw.cloud nodes.k8s.pl-waw.scw.cloud s3.pl-waw.scw.cloud s3-website.pl-waw.scw.cloud scalebook.scw.cloud smartlabeling.scw.cloud dedibox.fr schokokeks.net gov.scot service.gov.scot scrysec.com client.scrypted.io firewall-gateway.com firewall-gateway.de my-gateway.de my-router.de spdns.de spdns.eu firewall-gateway.net my-firewall.org myfirewall.org spdns.org seidat.net sellfy.store minisite.ms senseering.net servebolt.cloud biz.ua co.ua pp.ua as.sh.cn sheezy.games shiftedit.io myshopblocks.com myshopify.com shopitsite.com shopware.shop shopware.store mo-siemens.io 1kapp.com appchizi.com applinzi.com sinaapp.com vipsinaapp.com siteleaf.net small-web.org aeroport.fr avocat.fr chambagri.fr chirurgiens-dentistes.fr experts-comptables.fr medecin.fr notaires.fr pharmacien.fr port.fr veterinaire.fr vp4.me *.snowflake.app *.privatelink.snowflake.app streamlit.app streamlitapp.com try-snowplow.com mafelo.net playstation-cloud.com srht.site apps.lair.io *.stolos.io spacekit.io ind.mom customer.speedpartner.de myspreadshop.at myspreadshop.com.au myspreadshop.be myspreadshop.ca myspreadshop.ch myspreadshop.com myspreadshop.de myspreadshop.dk myspreadshop.es myspreadshop.fi myspreadshop.fr myspreadshop.ie myspreadshop.it myspreadshop.net myspreadshop.nl myspreadshop.no myspreadshop.pl myspreadshop.se myspreadshop.co.uk w-corp-staticblitz.com w-credentialless-staticblitz.com w-staticblitz.com stackhero-network.com runs.onstackit.cloud stackit.gg stackit.rocks stackit.run stackit.zone musician.io novecore.site api.stdlib.com feedback.ac forms.ac assessments.cx calculators.cx funnels.cx paynow.cx quizzes.cx researched.cx tests.cx surveys.so storebase.store storipress.app storj.farm strapiapp.com media.strapiapp.com vps-host.net atl.jelastic.vps-host.net njs.jelastic.vps-host.net ric.jelastic.vps-host.net streak-link.com streaklinks.com streakusercontent.com soc.srcf.net user.srcf.net utwente.io temp-dns.com supabase.co supabase.in supabase.net syncloud.it dscloud.biz direct.quickconnect.cn dsmynas.com familyds.com diskstation.me dscloud.me i234.me myds.me synology.me dscloud.mobi dsmynas.net familyds.net dsmynas.org familyds.org direct.quickconnect.to vpnplus.to mytabit.com mytabit.co.il tabitorder.co.il taifun-dns.de ts.net *.c.ts.net gda.pl gdansk.pl gdynia.pl med.pl sopot.pl taveusercontent.com p.tawk.email p.tawkto.email site.tb-hosting.com edugit.io s3.teckids.org telebit.app telebit.io *.telebit.xyz *.firenet.ch *.svc.firenet.ch reservd.com thingdustdata.com cust.dev.thingdust.io reservd.dev.thingdust.io cust.disrec.thingdust.io reservd.disrec.thingdust.io cust.prod.thingdust.io cust.testing.thingdust.io reservd.testing.thingdust.io tickets.io arvo.network azimuth.network tlon.network torproject.net pages.torproject.net townnews-staging.com 12hp.at 2ix.at 4lima.at lima-city.at 12hp.ch 2ix.ch 4lima.ch lima-city.ch trafficplex.cloud de.cool 12hp.de 2ix.de 4lima.de lima-city.de 1337.pictures clan.rip lima-city.rocks webspace.rocks lima.zone *.transurl.be *.transurl.eu site.transip.me *.transurl.nl tuxfamily.org dd-dns.de dray-dns.de draydns.de dyn-vpn.de dynvpn.de mein-vigor.de my-vigor.de my-wan.de syno-ds.de synology-diskstation.de synology-ds.de diskstation.eu diskstation.org typedream.app pro.typeform.com *.uberspace.de uber.space hk.com inc.hk ltd.hk hk.org it.com unison-services.cloud virtual-user.de virtualuser.de name.pm sch.tf biz.wf sch.wf org.yt rs.ba bielsko.pl upli.io urown.cloud dnsupdate.info us.org v.ua express.val.run web.val.run vercel.app v0.build vercel.dev vusercontent.net now.sh 2038.io router.management v-info.info voorloper.cloud *.vultrobjects.com wafflecell.com webflow.io webflowtest.io *.webhare.dev bookonline.app hotelwithflight.com reserve-online.com reserve-online.net cprapid.com pleskns.com wp2.host pdns.page plesk.page wpsquared.site *.wadl.top remotewd.com box.ca pages.wiardweb.com toolforge.org wmcloud.org wmflabs.org wdh.app panel.gg daemon.panel.gg wixsite.com wixstudio.com editorx.io wixstudio.io wix.run messwithdns.com woltlab-demo.com myforum.community community-pro.de diskussionsbereich.de community-pro.net meinforum.net affinitylottery.org.uk raffleentry.org.uk weeklylottery.org.uk wpenginepowered.com js.wpenginepowered.com half.host xnbay.com u2.xnbay.com u2-local.xnbay.com cistron.nl demon.nl xs4all.space yandexcloud.net storage.yandexcloud.net website.yandexcloud.net official.academy yolasite.com yombo.me ynh.fr nohost.me noho.st za.net za.org zap.cloud zeabur.app bss.design basicserver.io virtualserver.io enterprisecloud.nu'.split(' ').reduce((l,
291
- W)=>{const r=W.replace(/^(\*\.|!)/,''),n=H.toASCII(r),Z=W.charAt(0);if(l.has(n))throw Error(`Multiple rules found for ${W} (${n})`);return l.set(n,{rule:W,suffix:r,punySuffix:n,wildcard:Z==='*',exception:Z==='!'}),l},new Map),U=l=>{l=H.toASCII(l).split('.');for(let r=0;r<l.length;r++){var W=l.slice(r).join('.');if(W=N.get(W))return W}return null},D={DOMAIN_TOO_SHORT:'Domain name too short.',DOMAIN_TOO_LONG:'Domain name too long. It should be no more than 255 chars.',LABEL_STARTS_WITH_DASH:'Domain name label can not start with a dash.',
226
+ define('gina','require lib/merge lib/uuid lib/routing lib/money utils/events helpers/prototypes helpers/dateFormat'.split(' '),function(f){f('utils/events');var q=f('lib/merge'),F=f('lib/uuid');f('lib/routing');var H=f('lib/money'),M=f('helpers/dateFormat')();f('helpers/prototypes')({dateFormat:M});window.process||function(V,D,m,E,A,aa,l){for(aa=V[m]||(V[m]={});!l&&A<E.length;)l=V[E[A++]+'requestAnimationFrame'];aa[D]=aa[D]||l&&l.bind(V)||V.setImmediate||V.setTimeout}(window,'nextTick','process',
227
+ ['r','webkitR','mozR','msR','oR'],0);window.getComputedStyle||(window.getComputedStyle=function(V,D){this.el=V;this.getPropertyValue=function(m){var E=/(\-([a-z]){1})/g;m=='float'&&(m='styleFloat');E.test(m)&&(m=m.replace(E,function(){return arguments[2].toUpperCase()}));return V.currentStyle[m]?V.currentStyle[m]:null};return this});return async function(V){this.plugin='gina';var D='gina-'+F(),m=document;document.id=D;var E={id:D,isFrameworkLoaded:!1,hasValidator:!1,hasPopinHandler:!1,config:{},session:null,
228
+ registeredEvents:{},events:{},setOptions:function(A){A&&typeof A=='object'&&A!==E.config&&(E.config=q(E.config,A,!0))},money:H};try{typeof parent.window.gina!='undefined'&&(window.gina=q(window.gina||{},parent.window.gina))}catch(A){}E=q(window.gina||{},E);registerEvents(this.plugin,['ginaloaded','ready']);triggerEvent(V,m,'ginaloaded',E)}});
229
+ !function(f,q){'object'==typeof exports&&'undefined'!=typeof module?module.exports=q():'function'==typeof define&&define.amd?define('vendor/engine.io',q):(f='undefined'!=typeof globalThis?globalThis:f||self).eio=q()}(this,function(){function f(da,xa){for(var ia=0;ia<xa.length;ia++){var C=xa[ia];C.enumerable=C.enumerable||!1;C.configurable=!0;'value'in C&&(C.writable=!0);var P=Object,ma=P.defineProperty;var Ba=C.key;a:if('object'==typeof Ba&&Ba){var Ua=Ba[Symbol.toPrimitive];if(void 0!==Ua){Ba=Ua.call(Ba,
230
+ 'string');if('object'!=typeof Ba)break a;throw new TypeError('@@toPrimitive must return a primitive value.');}Ba=String(Ba)}ma.call(P,da,'symbol'==typeof Ba?Ba:Ba+'',C)}}function q(da,xa,ia){return xa&&f(da.prototype,xa),ia&&f(da,ia),Object.defineProperty(da,'prototype',{writable:!1}),da}function F(){return F=Object.assign?Object.assign.bind():function(da){for(var xa=1;xa<arguments.length;xa++){var ia=arguments[xa],C;for(C in ia)({}).hasOwnProperty.call(ia,C)&&(da[C]=ia[C])}return da},F.apply(null,
231
+ arguments)}function H(da){return H=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(xa){return xa.__proto__||Object.getPrototypeOf(xa)},H(da)}function M(da,xa){da.prototype=Object.create(xa.prototype);da.prototype.constructor=da;D(da,xa)}function V(){try{var da=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(xa){}return(V=function(){return!!da})()}function D(da,xa){return D=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(ia,C){return ia.__proto__=
232
+ C,ia},D(da,xa)}function m(da){return m='function'==typeof Symbol&&'symbol'==typeof Symbol.iterator?function(xa){return typeof xa}:function(xa){return xa&&'function'==typeof Symbol&&xa.constructor===Symbol&&xa!==Symbol.prototype?'symbol':typeof xa},m(da)}function E(da){var xa='function'==typeof Map?new Map:void 0;return E=function(ia){function C(){return function(P,ma,Ba){if(V())return Reflect.construct.apply(null,arguments);var Ua=[null];Ua.push.apply(Ua,ma);Ua=new (P.bind.apply(P,Ua));return Ba&&
233
+ D(Ua,Ba.prototype),Ua}(ia,arguments,H(this).constructor)}if(null===ia||!function(P){try{return-1!==Function.toString.call(P).indexOf('[native code]')}catch(ma){return'function'==typeof P}}(ia))return ia;if('function'!=typeof ia)throw new TypeError('Super expression must either be null or a function');if(void 0!==xa){if(xa.has(ia))return xa.get(ia);xa.set(ia,C)}return C.prototype=Object.create(ia.prototype,{constructor:{value:C,enumerable:!1,writable:!0,configurable:!0}}),D(C,ia)},E(da)}function A(da){return da instanceof
234
+ Uint8Array?da:da instanceof ArrayBuffer?new Uint8Array(da):new Uint8Array(da.buffer,da.byteOffset,da.byteLength)}function aa(){return new TransformStream({transform:function(da,xa){!function(ia,C){Q&&ia.data instanceof Blob?ia.data.arrayBuffer().then(A).then(C):ka&&(ia.data instanceof ArrayBuffer||ua(ia.data))?C(A(ia.data)):pa(ia,!1,function(P){X||=new TextEncoder;C(X.encode(P))})}(da,function(ia){var C=ia.length;if(C<126){var P=new Uint8Array(1);(new DataView(P.buffer)).setUint8(0,C)}else if(C<65536){P=
235
+ new Uint8Array(3);var ma=new DataView(P.buffer);ma.setUint8(0,126);ma.setUint16(1,C)}else P=new Uint8Array(9),ma=new DataView(P.buffer),ma.setUint8(0,127),ma.setBigUint64(1,BigInt(C));da.data&&'string'!=typeof da.data&&(P[0]|=128);xa.enqueue(P);xa.enqueue(ia)})}})}function l(da){return da.reduce(function(xa,ia){return xa+ia.length},0)}function W(da,xa){if(da[0].length===xa)return da.shift();for(var ia=new Uint8Array(xa),C=0,P=0;P<xa;P++)ia[P]=da[0][C++],C===da[0].length&&(da.shift(),C=0);return da.length&&
236
+ C<da[0].length&&(da[0]=da[0].slice(C)),ia}function r(da){if(da){for(var xa in r.prototype)da[xa]=r.prototype[xa];return da}}function n(da){for(var xa=arguments.length,ia=Array(xa>1?xa-1:0),C=1;C<xa;C++)ia[C-1]=arguments[C];return ia.reduce(function(P,ma){return da.hasOwnProperty(ma)&&(P[ma]=da[ma]),P},{})}function Z(da,xa){xa.useNativeTimers?(da.setTimeoutFn=wa.bind(Da),da.clearTimeoutFn=Va.bind(Da)):(da.setTimeoutFn=Da.setTimeout.bind(Da),da.clearTimeoutFn=Da.clearTimeout.bind(Da))}function U(){return Date.now().toString(36).substring(3)+
237
+ Math.random().toString(36).substring(2,5)}function Y(){}function v(){for(var da in ib.requests)ib.requests.hasOwnProperty(da)&&ib.requests[da].abort()}function L(da){da=da.xdomain;try{if('undefined'!=typeof XMLHttpRequest&&(!da||$a))return new XMLHttpRequest}catch(xa){}if(!da)try{return new (Da[['Active'].concat('Object').join('X')])('Microsoft.XMLHTTP')}catch(xa){}}function y(da){if(da.length>8E3)throw'URI too long';var xa=da,ia=da.indexOf('['),C=da.indexOf(']');-1!=ia&&-1!=C&&(da=da.substring(0,
238
+ ia)+da.substring(ia,C).replace(/:/g,';')+da.substring(C,da.length));var P,ma;da=Mb.exec(da||'');for(var Ba={},Ua=14;Ua--;)Ba[rb[Ua]]=da[Ua]||'';return-1!=ia&&-1!=C&&(Ba.source=xa,Ba.host=Ba.host.substring(1,Ba.host.length-1).replace(/;/g,':'),Ba.authority=Ba.authority.replace('[','').replace(']','').replace(/;/g,':'),Ba.ipv6uri=!0),Ba.pathNames=function(cb,k){cb=k.replace(/\/{2,9}/g,'/').split('/');'/'!=k.slice(0,1)&&0!==k.length||cb.splice(0,1);'/'==k.slice(-1)&&cb.splice(cb.length-1,1);return cb}(0,
239
+ Ba.path),Ba.queryKey=(P=Ba.query,ma={},P.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(cb,k,w){k&&(ma[k]=w)}),ma),Ba}var x=Object.create(null);x.open='0';x.close='1';x.ping='2';x.pong='3';x.message='4';x.upgrade='5';x.noop='6';var S=Object.create(null);Object.keys(x).forEach(function(da){S[x[da]]=da});for(var X,g={type:'error',data:'parser error'},Q='function'==typeof Blob||'undefined'!=typeof Blob&&'[object BlobConstructor]'===Object.prototype.toString.call(Blob),ka='function'==typeof ArrayBuffer,
240
+ ua=function(da){return'function'==typeof ArrayBuffer.isView?ArrayBuffer.isView(da):da&&da.buffer instanceof ArrayBuffer},pa=function(da,xa,ia){var C=da.type;da=da.data;return Q&&da instanceof Blob?xa?ia(da):K(da,ia):ka&&(da instanceof ArrayBuffer||ua(da))?xa?ia(da):K(new Blob([da]),ia):ia(x[C]+(da||''))},K=function(da,xa){var ia=new FileReader;return ia.onload=function(){var C=ia.result.split(',')[1];xa('b'+(C||''))},ia.readAsDataURL(da)},fa='undefined'==typeof Uint8Array?[]:new Uint8Array(256),na=
241
+ 0;na<64;na++)fa['ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.charCodeAt(na)]=na;var Ia,O='function'==typeof ArrayBuffer,T=function(da,xa){if('string'!=typeof da)return{type:'message',data:ya(da,xa)};var ia=da.charAt(0);if('b'===ia){da=da.substring(1);if(O){var C=.75*da.length;ia=da.length;var P=0;'='===da[da.length-1]&&(C--,'='===da[da.length-2]&&C--);var ma=new ArrayBuffer(C),Ba=new Uint8Array(ma);for(C=0;C<ia;C+=4){var Ua=fa[da.charCodeAt(C)];var cb=fa[da.charCodeAt(C+1)];
242
+ var k=fa[da.charCodeAt(C+2)];var w=fa[da.charCodeAt(C+3)];Ba[P++]=Ua<<2|cb>>4;Ba[P++]=(15&cb)<<4|k>>2;Ba[P++]=(3&k)<<6|63&w}xa=ya(ma,xa)}else xa={base64:!0,data:da};xa={type:'message',data:xa}}else xa=S[ia]?da.length>1?{type:S[ia],data:da.substring(1)}:{type:S[ia]}:g;return xa},ya=function(da,xa){return'blob'===xa?da instanceof Blob?da:new Blob([da]):da instanceof ArrayBuffer?da:da.buffer},ja=String.fromCharCode(30);r.prototype.on=r.prototype.addEventListener=function(da,xa){return this.t=this.t||
243
+ {},(this.t['$'+da]=this.t['$'+da]||[]).push(xa),this};r.prototype.once=function(da,xa){function ia(){this.off(da,ia);xa.apply(this,arguments)}return ia.fn=xa,this.on(da,ia),this};r.prototype.off=r.prototype.removeListener=r.prototype.removeAllListeners=r.prototype.removeEventListener=function(da,xa){if(this.t=this.t||{},0==arguments.length)return this.t={},this;var ia,C=this.t['$'+da];if(!C)return this;if(1==arguments.length)return delete this.t['$'+da],this;for(var P=0;P<C.length;P++)if((ia=C[P])===
244
+ xa||ia.fn===xa){C.splice(P,1);break}return 0===C.length&&delete this.t['$'+da],this};r.prototype.emit=function(da){this.t=this.t||{};for(var xa=Array(arguments.length-1),ia=this.t['$'+da],C=1;C<arguments.length;C++)xa[C-1]=arguments[C];if(ia){C=0;for(var P=(ia=ia.slice(0)).length;C<P;++C)ia[C].apply(this,xa)}return this};r.prototype.emitReserved=r.prototype.emit;r.prototype.listeners=function(da){return this.t=this.t||{},this.t['$'+da]||[]};r.prototype.hasListeners=function(da){return!!this.listeners(da).length};
245
+ var Ea='function'==typeof Promise&&'function'==typeof Promise.resolve?function(da){return Promise.resolve().then(da)}:function(da,xa){return xa(da,0)},Da='undefined'!=typeof self?self:'undefined'!=typeof window?window:globalThis,wa=Da.setTimeout,Va=Da.clearTimeout,ba=function(da){function xa(ia,C,P){var ma;return(ma=da.call(this,ia)||this).description=C,ma.context=P,ma.type='TransportError',ma}return M(xa,da),xa}(E(Error));na=function(da){function xa(C){var P;return(P=da.call(this)||this).writable=
246
+ !1,Z(P,C),P.opts=C,P.query=C.query,P.socket=C.socket,P.supportsBinary=!C.forceBase64,P}M(xa,da);var ia=xa.prototype;return ia.onError=function(C,P,ma){return da.prototype.emitReserved.call(this,'error',new ba(C,P,ma)),this},ia.open=function(){return this.readyState='opening',this.doOpen(),this},ia.close=function(){return'opening'!==this.readyState&&'open'!==this.readyState||(this.doClose(),this.onClose()),this},ia.send=function(C){'open'===this.readyState&&this.write(C)},ia.onOpen=function(){this.readyState=
247
+ 'open';this.writable=!0;da.prototype.emitReserved.call(this,'open')},ia.onData=function(C){C=T(C,this.socket.binaryType);this.onPacket(C)},ia.onPacket=function(C){da.prototype.emitReserved.call(this,'packet',C)},ia.onClose=function(C){this.readyState='closed';da.prototype.emitReserved.call(this,'close',C)},ia.pause=function(C){},ia.createUri=function(C){var P=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return C+'://'+this.i()+this.o()+this.opts.path+this.u(P)},ia.i=function(){var C=
248
+ this.opts.hostname;return-1===C.indexOf(':')?C:'['+C+']'},ia.o=function(){return this.opts.port&&(this.opts.secure&&443!==Number(this.opts.port)||!this.opts.secure&&80!==Number(this.opts.port))?':'+this.opts.port:''},ia.u=function(C){var P='',ma;for(ma in C)C.hasOwnProperty(ma)&&(P.length&&(P+='&'),P+=encodeURIComponent(ma)+'='+encodeURIComponent(C[ma]));C=P;return C.length?'?'+C:''},xa}(r);var Ga=function(da){function xa(){var C;return(C=da.apply(this,arguments)||this).h=!1,C}M(xa,da);var ia=xa.prototype;
249
+ return ia.doOpen=function(){this.p()},ia.pause=function(C){var P=this;this.readyState='pausing';var ma=function(){P.readyState='paused';C()};if(this.h||!this.writable){var Ba=0;this.h&&(Ba++,this.once('pollComplete',function(){--Ba||ma()}));this.writable||(Ba++,this.once('drain',function(){--Ba||ma()}))}else ma()},ia.p=function(){this.h=!0;this.doPoll();this.emitReserved('poll')},ia.onData=function(C){var P=this;(function(ma,Ba){ma=ma.split(ja);for(var Ua=[],cb=0;cb<ma.length;cb++){var k=T(ma[cb],
250
+ Ba);if(Ua.push(k),'error'===k.type)break}return Ua})(C,this.socket.binaryType).forEach(function(ma){if('opening'===P.readyState&&'open'===ma.type&&P.onOpen(),'close'===ma.type)return P.onClose({description:'transport closed by the server'}),!1;P.onPacket(ma)});'closed'!==this.readyState&&(this.h=!1,this.emitReserved('pollComplete'),'open'===this.readyState&&this.p())},ia.doClose=function(){var C=this,P=function(){C.write([{type:'close'}])};'open'===this.readyState?P():this.once('open',P)},ia.write=
251
+ function(C){var P=this;this.writable=!1;(function(ma,Ba){var Ua=ma.length,cb=Array(Ua),k=0;ma.forEach(function(w,G){pa(w,!1,function(ha){cb[G]=ha;++k===Ua&&Ba(cb.join(ja))})})})(C,function(ma){P.doWrite(ma,function(){P.writable=!0;P.emitReserved('drain')})})},ia.uri=function(){var C=this.opts.secure?'https':'http',P=this.query||{};return!1!==this.opts.timestampRequests&&(P[this.opts.timestampParam]=U()),this.supportsBinary||P.sid||(P.b64=1),this.createUri(C,P)},q(xa,[{key:'name',get:function(){return'polling'}}])}(na),
252
+ Ka=!1;try{Ka='undefined'!=typeof XMLHttpRequest&&'withCredentials'in new XMLHttpRequest}catch(da){}var $a=Ka;Ga=function(da){function xa(C){var P;if(P=da.call(this,C)||this,'undefined'!=typeof location){var ma='https:'===location.protocol,Ba=location.port;Ba||=ma?'443':'80';P.xd='undefined'!=typeof location&&C.hostname!==location.hostname||Ba!==C.port}return P}M(xa,da);var ia=xa.prototype;return ia.doWrite=function(C,P){var ma=this;C=this.request({method:'POST',data:C});C.on('success',P);C.on('error',
253
+ function(Ba,Ua){ma.onError('xhr post error',Ba,Ua)})},ia.doPoll=function(){var C=this,P=this.request();P.on('data',this.onData.bind(this));P.on('error',function(ma,Ba){C.onError('xhr poll error',ma,Ba)});this.pollXhr=P},xa}(Ga);var ib=function(da){function xa(C,P,ma){var Ba;return(Ba=da.call(this)||this).createRequest=C,Z(Ba,ma),Ba.l=ma,Ba.v=ma.method||'GET',Ba.m=P,Ba.k=void 0!==ma.data?ma.data:null,Ba.A(),Ba}M(xa,da);var ia=xa.prototype;return ia.A=function(){var C,P=this,ma=n(this.l,'agent','pfx',
254
+ 'key','passphrase','cert','ca','ciphers','rejectUnauthorized','autoUnref');ma.xdomain=!!this.l.xd;var Ba=this.j=this.createRequest(ma);try{Ba.open(this.v,this.m,!0);try{if(this.l.extraHeaders)for(var Ua in Ba.setDisableHeaderCheck&&Ba.setDisableHeaderCheck(!0),this.l.extraHeaders)this.l.extraHeaders.hasOwnProperty(Ua)&&Ba.setRequestHeader(Ua,this.l.extraHeaders[Ua])}catch(cb){}if('POST'===this.v)try{Ba.setRequestHeader('Content-type','text/plain;charset=UTF-8')}catch(cb){}try{Ba.setRequestHeader('Accept',
255
+ '*/*')}catch(cb){}null===(C=this.l.cookieJar)||void 0===C||C.addCookies(Ba);'withCredentials'in Ba&&(Ba.withCredentials=this.l.withCredentials);this.l.requestTimeout&&(Ba.timeout=this.l.requestTimeout);Ba.onreadystatechange=function(){var cb;3!==Ba.readyState||null!==(cb=P.l.cookieJar)&&void 0!==cb&&cb.parseCookies(Ba.getResponseHeader('set-cookie'));4===Ba.readyState&&(200===Ba.status||1223===Ba.status?P.B():P.setTimeoutFn(function(){P.O('number'==typeof Ba.status?Ba.status:0)},0))};Ba.send(this.k)}catch(cb){return void this.setTimeoutFn(function(){P.O(cb)},
256
+ 0)}'undefined'!=typeof document&&(this.U=xa.requestsCount++,xa.requests[this.U]=this)},ia.O=function(C){this.emitReserved('error',C,this.j);this.T(!0)},ia.T=function(C){if(void 0!==this.j&&null!==this.j){if(this.j.onreadystatechange=Y,C)try{this.j.abort()}catch(P){}'undefined'!=typeof document&&delete xa.requests[this.U];this.j=null}},ia.B=function(){var C=this.j.responseText;null!==C&&(this.emitReserved('data',C),this.emitReserved('success'),this.T())},ia.abort=function(){this.T()},xa}(r);if(ib.requestsCount=
257
+ 0,ib.requests={},'undefined'!=typeof document)'function'==typeof attachEvent?attachEvent('onunload',v):'function'==typeof addEventListener&&addEventListener('onpagehide'in Da?'pagehide':'unload',v,!1);var Ya,sb=(Ya=L({xdomain:!1}))&&null!==Ya.responseType;Ya=function(da){function xa(ia){var C=da.call(this,ia)||this;ia=ia&&ia.forceBase64;return C.supportsBinary=sb&&!ia,C}return M(xa,da),xa.prototype.request=function(){var ia=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return F(ia,{xd:this.xd},
258
+ this.opts),new ib(L,this.uri(),ia)},xa}(Ga);var Cb='undefined'!=typeof navigator&&'string'==typeof navigator.product&&'reactnative'===navigator.product.toLowerCase();Ga=function(da){function xa(){return da.apply(this,arguments)||this}M(xa,da);var ia=xa.prototype;return ia.doOpen=function(){var C=this.uri(),P=this.opts.protocols,ma=Cb?{}:n(this.opts,'agent','perMessageDeflate','pfx','key','passphrase','cert','ca','ciphers','rejectUnauthorized','localAddress','protocolVersion','origin','maxPayload',
259
+ 'family','checkServerIdentity');this.opts.extraHeaders&&(ma.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(C,P,ma)}catch(Ba){return this.emitReserved('error',Ba)}this.ws.binaryType=this.socket.binaryType;this.addEventListeners()},ia.addEventListeners=function(){var C=this;this.ws.onopen=function(){C.opts.autoUnref&&C.ws.S.unref();C.onOpen()};this.ws.onclose=function(P){return C.onClose({description:'websocket connection closed',context:P})};this.ws.onmessage=function(P){return C.onData(P.data)};
260
+ this.ws.onerror=function(P){return C.onError('websocket error',P)}},ia.write=function(C){var P=this;this.writable=!1;for(var ma=function(){var Ua=C[Ba],cb=Ba===C.length-1;pa(Ua,P.supportsBinary,function(k){try{P.doWrite(Ua,k)}catch(w){}cb&&Ea(function(){P.writable=!0;P.emitReserved('drain')},P.setTimeoutFn)})},Ba=0;Ba<C.length;Ba++)ma()},ia.doClose=function(){void 0!==this.ws&&(this.ws.onerror=function(){},this.ws.close(),this.ws=null)},ia.uri=function(){var C=this.opts.secure?'wss':'ws',P=this.query||
261
+ {};return this.opts.timestampRequests&&(P[this.opts.timestampParam]=U()),this.supportsBinary||(P.b64=1),this.createUri(C,P)},q(xa,[{key:'name',get:function(){return'websocket'}}])}(na);var qb=Da.WebSocket||Da.MozWebSocket;Ga=function(da){function xa(){return da.apply(this,arguments)||this}M(xa,da);var ia=xa.prototype;return ia.createSocket=function(C,P,ma){return Cb?new qb(C,P,ma):P?new qb(C,P):new qb(C)},ia.doWrite=function(C,P){this.ws.send(P)},xa}(Ga);na=function(da){function xa(){return da.apply(this,
262
+ arguments)||this}M(xa,da);var ia=xa.prototype;return ia.doOpen=function(){var C=this;try{this.M=new WebTransport(this.createUri('https'),this.opts.transportOptions[this.name])}catch(P){return this.emitReserved('error',P)}this.M.closed.then(function(){C.onClose()}).catch(function(P){C.onError('webtransport error',P)});this.M.ready.then(function(){C.M.createBidirectionalStream().then(function(P){var ma=function(Ua,cb){Ia||=new TextDecoder;var k=[],w=0,G=-1,ha=!1;return new TransformStream({transform:function(ca,
263
+ ta){for(k.push(ca);;){if(0===w){if(l(k)<1)break;ca=W(k,1);ha=!(128&~ca[0]);G=127&ca[0];w=G<126?3:126===G?1:2}else if(1===w){if(l(k)<2)break;ca=W(k,2);G=(new DataView(ca.buffer,ca.byteOffset,ca.length)).getUint16(0);w=3}else if(2===w){if(l(k)<8)break;ca=W(k,8);ca=new DataView(ca.buffer,ca.byteOffset,ca.length);var B=ca.getUint32(0);if(B>2097151){ta.enqueue(g);break}G=B*4294967296+ca.getUint32(4);w=3}else{if(l(k)<G)break;ca=W(k,G);ta.enqueue(T(ha?ca:Ia.decode(ca),cb));w=0}if(0===G||G>Ua){ta.enqueue(g);
264
+ break}}}})}(Number.MAX_SAFE_INTEGER,C.socket.binaryType),Ba=P.readable.pipeThrough(ma).getReader();ma=aa();ma.readable.pipeTo(P.writable);C.C=ma.writable.getWriter();!function cb(){Ba.read().then(function(k){var w=k.value;k.done||(C.onPacket(w),cb())}).catch(function(k){})}();P={type:'open'};C.query.sid&&(P.data='{"sid":"'.concat(C.query.sid,'"}'));C.C.write(P).then(function(){return C.onOpen()})})})},ia.write=function(C){var P=this;this.writable=!1;for(var ma=function(){var Ua=Ba===C.length-1;P.C.write(C[Ba]).then(function(){Ua&&
265
+ Ea(function(){P.writable=!0;P.emitReserved('drain')},P.setTimeoutFn)})},Ba=0;Ba<C.length;Ba++)ma()},ia.doClose=function(){var C;null===(C=this.M)||void 0===C||C.close()},q(xa,[{key:'name',get:function(){return'webtransport'}}])}(na);var Jb={websocket:Ga,webtransport:na,polling:Ya},Mb=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,
266
+ rb='source protocol authority userInfo user password host port relative path directory file query anchor'.split(' '),gb='function'==typeof addEventListener&&'function'==typeof removeEventListener,Ha=[];gb&&addEventListener('offline',function(){Ha.forEach(function(da){return da()})},!1);var Fb=function(da){function xa(C,P){var ma;((ma=da.call(this)||this).binaryType='arraybuffer',ma.writeBuffer=[],ma.L=0,ma.R=-1,ma.D=-1,ma.P=-1,ma.I=1/0,C&&'object'===m(C)&&(P=C,C=null),C)?(C=y(C),P.hostname=C.host,
267
+ P.secure='https'===C.protocol||'wss'===C.protocol,P.port=C.port,C.query&&(P.query=C.query)):P.host&&(P.hostname=y(P.host).host);return Z(ma,P),ma.secure=null!=P.secure?P.secure:'undefined'!=typeof location&&'https:'===location.protocol,P.hostname&&!P.port&&(P.port=ma.secure?'443':'80'),ma.hostname=P.hostname||('undefined'!=typeof location?location.hostname:'localhost'),ma.port=P.port||('undefined'!=typeof location&&location.port?location.port:ma.secure?'443':'80'),ma.transports=[],ma.$={},P.transports.forEach(function(Ba){var Ua=
268
+ Ba.prototype.name;ma.transports.push(Ua);ma.$[Ua]=Ba}),ma.opts=F({path:'/engine.io',agent:!1,withCredentials:!1,upgrade:!0,timestampParam:'t',rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},P),ma.opts.path=ma.opts.path.replace(/\/$/,'')+(ma.opts.addTrailingSlash?'/':''),'string'==typeof ma.opts.query&&(ma.opts.query=function(Ba){var Ua={};Ba=Ba.split('&');for(var cb=0,k=Ba.length;cb<k;cb++){var w=Ba[cb].split('=');
269
+ Ua[decodeURIComponent(w[0])]=decodeURIComponent(w[1])}return Ua}(ma.opts.query)),gb&&(ma.opts.closeOnBeforeunload&&(ma.q=function(){ma.transport&&(ma.transport.removeAllListeners(),ma.transport.close())},addEventListener('beforeunload',ma.q,!1)),'localhost'!==ma.hostname&&(ma.N=function(){ma.V('transport close',{description:'network connection lost'})},Ha.push(ma.N))),ma.opts.withCredentials&&(ma.X=void 0),ma.H(),ma}M(xa,da);var ia=xa.prototype;return ia.createTransport=function(C){var P=F({},this.opts.query);
270
+ P.EIO=4;P.transport=C;this.id&&(P.sid=this.id);P=F({},this.opts,{query:P,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[C]);return new this.$[C](P)},ia.H=function(){var C=this;if(0!==this.transports.length){var P=this.opts.rememberUpgrade&&xa.priorWebsocketSuccess&&-1!==this.transports.indexOf('websocket')?'websocket':this.transports[0];this.readyState='opening';P=this.createTransport(P);P.open();this.setTransport(P)}else this.setTimeoutFn(function(){C.emitReserved('error',
271
+ 'No transports available')},0)},ia.setTransport=function(C){var P=this;this.transport&&this.transport.removeAllListeners();this.transport=C;C.on('drain',this.F.bind(this)).on('packet',this.G.bind(this)).on('error',this.O.bind(this)).on('close',function(ma){return P.V('transport close',ma)})},ia.onOpen=function(){this.readyState='open';xa.priorWebsocketSuccess='websocket'===this.transport.name;this.emitReserved('open');this.flush()},ia.G=function(C){if('opening'===this.readyState||'open'===this.readyState||
272
+ 'closing'===this.readyState)switch(this.emitReserved('packet',C),this.emitReserved('heartbeat'),C.type){case 'open':this.onHandshake(JSON.parse(C.data));break;case 'ping':this.J('pong');this.emitReserved('ping');this.emitReserved('pong');this.W();break;case 'error':var P=Error('server error');P.code=C.data;this.O(P);break;case 'message':this.emitReserved('data',C.data),this.emitReserved('message',C.data)}},ia.onHandshake=function(C){this.emitReserved('handshake',C);this.id=C.sid;this.transport.query.sid=
273
+ C.sid;this.R=C.pingInterval;this.D=C.pingTimeout;this.P=C.maxPayload;this.onOpen();'closed'!==this.readyState&&this.W()},ia.W=function(){var C=this;this.clearTimeoutFn(this.K);var P=this.R+this.D;this.I=Date.now()+P;this.K=this.setTimeoutFn(function(){C.V('ping timeout')},P);this.opts.autoUnref&&this.K.unref()},ia.F=function(){this.writeBuffer.splice(0,this.L);this.L=0;0===this.writeBuffer.length?this.emitReserved('drain'):this.flush()},ia.flush=function(){if('closed'!==this.readyState&&this.transport.writable&&
274
+ !this.upgrading&&this.writeBuffer.length){var C=this.Y();this.transport.send(C);this.L=C.length;this.emitReserved('flush')}},ia.Y=function(){if(!(this.P&&'polling'===this.transport.name&&this.writeBuffer.length>1))return this.writeBuffer;for(var C,P=1,ma=0;ma<this.writeBuffer.length;ma++){if(C=this.writeBuffer[ma].data){if('string'==typeof C){for(var Ba=0,Ua=0,cb=0,k=C.length;cb<k;cb++)(Ba=C.charCodeAt(cb))<128?Ua+=1:Ba<2048?Ua+=2:Ba<55296||Ba>=57344?Ua+=3:(cb++,Ua+=4);C=Ua}else C=Math.ceil(1.33*
275
+ (C.byteLength||C.size));P+=C}if(ma>0&&P>this.P)return this.writeBuffer.slice(0,ma);P+=2}return this.writeBuffer},ia.Z=function(){var C=this;if(!this.I)return!0;var P=Date.now()>this.I;return P&&(this.I=0,Ea(function(){C.V('ping timeout')},this.setTimeoutFn)),P},ia.write=function(C,P,ma){return this.J('message',C,P,ma),this},ia.send=function(C,P,ma){return this.J('message',C,P,ma),this},ia.J=function(C,P,ma,Ba){if('function'==typeof P&&(Ba=P,P=void 0),'function'==typeof ma&&(Ba=ma,ma=null),'closing'!==
276
+ this.readyState&&'closed'!==this.readyState)(ma=ma||{}).compress=!1!==ma.compress,C={type:C,data:P,options:ma},this.emitReserved('packetCreate',C),this.writeBuffer.push(C),Ba&&this.once('flush',Ba),this.flush()},ia.close=function(){var C=this,P=function(){C.V('forced close');C.transport.close()},ma=function cb(){C.off('upgrade',cb);C.off('upgradeError',cb);P()},Ba=function(){C.once('upgrade',ma);C.once('upgradeError',ma)};return'opening'!==this.readyState&&'open'!==this.readyState||(this.readyState=
277
+ 'closing',this.writeBuffer.length?this.once('drain',function(){C.upgrading?Ba():P()}):this.upgrading?Ba():P()),this},ia.O=function(C){if(xa.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&'opening'===this.readyState)return this.transports.shift(),this.H();this.emitReserved('error',C);this.V('transport error',C)},ia.V=function(C,P){if('opening'===this.readyState||'open'===this.readyState||'closing'===this.readyState){if(this.clearTimeoutFn(this.K),this.transport.removeAllListeners('close'),
278
+ this.transport.close(),this.transport.removeAllListeners(),gb&&(this.q&&removeEventListener('beforeunload',this.q,!1),this.N)){var ma=Ha.indexOf(this.N);-1!==ma&&Ha.splice(ma,1)}this.readyState='closed';this.id=null;this.emitReserved('close',C,P);this.writeBuffer=[];this.L=0}},xa}(r);Fb.protocol=4;var Ib=function(da){function xa(ia){var C=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};C='object'===m(ia)?ia:C;return(!C.transports||C.transports&&'string'==typeof C.transports[0])&&(C.transports=
279
+ (C.transports||['polling','websocket','webtransport']).map(function(P){return Jb[P]}).filter(function(P){return!!P})),da.call(this,ia,C)||this}return M(xa,da),xa}(function(da){function xa(){var C;return(C=da.apply(this,arguments)||this)._=[],C}M(xa,da);var ia=xa.prototype;return ia.onOpen=function(){if(da.prototype.onOpen.call(this),'open'===this.readyState&&this.opts.upgrade)for(var C=0;C<this._.length;C++)this.tt(this._[C])},ia.tt=function(C){function P(){w||(w=!0,ca(),k.close(),k=null)}function ma(){ha('transport closed')}
280
+ function Ba(){ha('socket closed')}function Ua(ta){k&&ta.name!==k.name&&P()}var cb=this,k=this.createTransport(C),w=!1;Fb.priorWebsocketSuccess=!1;var G=function(){w||(k.send([{type:'ping',data:'probe'}]),k.once('packet',function(ta){if(!w)if('pong'===ta.type&&'probe'===ta.data){if(cb.upgrading=!0,cb.emitReserved('upgrading',k),k)Fb.priorWebsocketSuccess='websocket'===k.name,cb.transport.pause(function(){w||'closed'!==cb.readyState&&(ca(),cb.setTransport(k),k.send([{type:'upgrade'}]),cb.emitReserved('upgrade',
281
+ k),k=null,cb.upgrading=!1,cb.flush())})}else ta=Error('probe error'),ta.transport=k.name,cb.emitReserved('upgradeError',ta)}))},ha=function(ta){ta=Error('probe error: '+ta);ta.transport=k.name;P();cb.emitReserved('upgradeError',ta)},ca=function(){k.removeListener('open',G);k.removeListener('error',ha);k.removeListener('close',ma);cb.off('close',Ba);cb.off('upgrading',Ua)};k.once('open',G);k.once('error',ha);k.once('close',ma);this.once('close',Ba);this.once('upgrading',Ua);-1!==this._.indexOf('webtransport')&&
282
+ 'webtransport'!==C?this.setTimeoutFn(function(){w||k.open()},200):k.open()},ia.onHandshake=function(C){this._=this.nt(C.upgrades);da.prototype.onHandshake.call(this,C)},ia.nt=function(C){for(var P=[],ma=0;ma<C.length;ma++)~this.transports.indexOf(C[ma])&&P.push(C[ma]);return P},xa}(Fb));return function(da,xa){return new Ib(da,xa)}});
283
+ function BindingHelper(f){var q={};typeof f!='undefined'&&(q=f);q.process=function(F,H,M){if(typeof F=='undefined'||!Array.isArray(F))throw Error('`bindings` must be a defined array');typeof H=='undefined'&&(H=F.length,M=0);if(F[M]){var V=F[M];if(typeof V.call=='undefined')throw Error('`bindings.['+M+'].call` is required !');if(typeof q[V.call]!='function')throw Error('`bindingContext.'+V.call+'` is not a function');var D=V.call;delete V.call;try{if(typeof V.handler!='undefined'){if(!window[V.handler])throw Error('`'+
284
+ V.handler+'` could not be reached. You must expose it to the `window` do object before any call.');var m=V.handler;delete V.handler;window[m].apply(this,Object.values(V));V.handler=m}else q[D].apply(this,Object.values(V));V.call=D}catch(E){console.error('BindingHelper encountered error while trying to execute `'+D+'`'+(E.stack||E))}q.process(F,H,M+1)}};return q}define('helpers/binding',[],function(){return BindingHelper});
285
+ (function(f,q){typeof exports=='object'&&typeof module!='undefined'?q(exports):typeof define=='function'&&define.amd?define('vendor/gina/psl',['exports'],q):(f=typeof globalThis!='undefined'?globalThis:f||self,q(f.psl={}))})(this,function(f){var q,F;const H=function(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,'default')?l.default:l}(function(){function l(X){throw new RangeError(Y[X]);}function W(X,g){var Q=X.split('@');let ka='';Q.length>1&&(ka=Q[0]+'@',X=Q[1]);X=X.replace(U,
286
+ '.');X=X.split('.');Q=[];let ua=X.length;for(;ua--;)Q[ua]=g(X[ua]);g=Q.join('.');return ka+g}function r(X){const g=[];let Q=0;const ka=X.length;for(;Q<ka;){const ua=X.charCodeAt(Q++);if(ua>=55296&&ua<=56319&&Q<ka){const pa=X.charCodeAt(Q++);(pa&64512)==56320?g.push(((ua&1023)<<10)+(pa&1023)+65536):(g.push(ua),Q--)}else g.push(ua)}return g}if(F)return q;F=1;const n=/^xn--/,Z=/[^\0-\x7F]/,U=/[\x2E\u3002\uFF0E\uFF61]/g,Y={overflow:'Overflow: input needs wider integers to process','not-basic':'Illegal input >= 0x80 (not a basic code point)',
287
+ 'invalid-input':'Invalid input'},v=Math.floor,L=String.fromCharCode,y=function(X,g,Q){let ka=0;X=Q?v(X/700):X>>1;for(X+=v(X/g);X>455;ka+=36)X=v(X/35);return v(ka+36*X/(X+38))},x=function(X){const g=[],Q=X.length;let ka=0,ua=128,pa=72;var K=X.lastIndexOf('-');K<0&&(K=0);for(var fa=0;fa<K;++fa)X.charCodeAt(fa)>=128&&l('not-basic'),g.push(X.charCodeAt(fa));for(K=K>0?K+1:0;K<Q;){fa=ka;for(let Ia=1,O=36;;O+=36){K>=Q&&l('invalid-input');var na=X.charCodeAt(K++);na=na>=48&&na<58?26+(na-48):na>=65&&na<91?
288
+ na-65:na>=97&&na<123?na-97:36;na>=36&&l('invalid-input');na>v((2147483647-ka)/Ia)&&l('overflow');ka+=na*Ia;const T=O<=pa?1:O>=pa+26?26:O-pa;if(na<T)break;na=36-T;Ia>v(2147483647/na)&&l('overflow');Ia*=na}na=g.length+1;pa=y(ka-fa,na,fa==0);v(ka/na)>2147483647-ua&&l('overflow');ua+=v(ka/na);ka%=na;g.splice(ka++,0,ua)}return String.fromCodePoint(...g)},S=function(X){const g=[];X=r(X);const Q=X.length;let ka=128,ua=0,pa=72;for(var K of X)K<128&&g.push(L(K));let fa=K=g.length;for(K&&g.push('-');fa<Q;){var na=
289
+ 2147483647;for(const ya of X)ya>=ka&&ya<na&&(na=ya);const T=fa+1;na-ka>v((2147483647-ua)/T)&&l('overflow');ua+=(na-ka)*T;ka=na;for(const ya of X)if(ya<ka&&++ua>2147483647&&l('overflow'),ya===ka){var Ia=ua;for(na=36;;na+=36){var O=na<=pa?1:na>=pa+26?26:na-pa;if(Ia<O)break;const ja=Ia-O,Ea=36-O;Ia=g;O+=ja%Ea;Ia.push.call(Ia,L(O+22+75*(O<26)-0));Ia=v(ja/Ea)}g.push(L(Ia+22+75*(Ia<26)-0));pa=y(ua,T,fa===K);ua=0;++fa}++ua;++ka}return g.join('')};return q={version:'2.3.1',ucs2:{decode:r,encode:X=>String.fromCodePoint(...X)},
290
+ decode:x,encode:S,toASCII:function(X){return W(X,function(g){return Z.test(g)?'xn--'+S(g):g})},toUnicode:function(X){return W(X,function(g){return n.test(g)?x(g.slice(4).toLowerCase()):g})}},q}()),M='ac com.ac edu.ac gov.ac mil.ac net.ac org.ac ad ae ac.ae co.ae gov.ae mil.ae net.ae org.ae sch.ae aero airline.aero airport.aero accident-investigation.aero accident-prevention.aero aerobatic.aero aeroclub.aero aerodrome.aero agents.aero air-surveillance.aero air-traffic-control.aero aircraft.aero airtraffic.aero ambulance.aero association.aero author.aero ballooning.aero broker.aero caa.aero cargo.aero catering.aero certification.aero championship.aero charter.aero civilaviation.aero club.aero conference.aero consultant.aero consulting.aero control.aero council.aero crew.aero design.aero dgca.aero educator.aero emergency.aero engine.aero engineer.aero entertainment.aero equipment.aero exchange.aero express.aero federation.aero flight.aero freight.aero fuel.aero gliding.aero government.aero groundhandling.aero group.aero hanggliding.aero homebuilt.aero insurance.aero journal.aero journalist.aero leasing.aero logistics.aero magazine.aero maintenance.aero marketplace.aero media.aero microlight.aero modelling.aero navigation.aero parachuting.aero paragliding.aero passenger-association.aero pilot.aero press.aero production.aero recreation.aero repbody.aero res.aero research.aero rotorcraft.aero safety.aero scientist.aero services.aero show.aero skydiving.aero software.aero student.aero taxi.aero trader.aero trading.aero trainer.aero union.aero workinggroup.aero works.aero af com.af edu.af gov.af net.af org.af ag co.ag com.ag net.ag nom.ag org.ag ai com.ai net.ai off.ai org.ai al com.al edu.al gov.al mil.al net.al org.al am co.am com.am commune.am net.am org.am ao co.ao ed.ao edu.ao gov.ao gv.ao it.ao og.ao org.ao pb.ao aq ar bet.ar com.ar coop.ar edu.ar gob.ar gov.ar int.ar mil.ar musica.ar mutual.ar net.ar org.ar senasa.ar tur.ar arpa e164.arpa home.arpa in-addr.arpa ip6.arpa iris.arpa uri.arpa urn.arpa as gov.as asia at ac.at sth.ac.at co.at gv.at or.at au asn.au com.au edu.au gov.au id.au net.au org.au conf.au oz.au act.au nsw.au nt.au qld.au sa.au tas.au vic.au wa.au act.edu.au catholic.edu.au nsw.edu.au nt.edu.au qld.edu.au sa.edu.au tas.edu.au vic.edu.au wa.edu.au qld.gov.au sa.gov.au tas.gov.au vic.gov.au wa.gov.au schools.nsw.edu.au aw com.aw ax az biz.az com.az edu.az gov.az info.az int.az mil.az name.az net.az org.az pp.az pro.az ba com.ba edu.ba gov.ba mil.ba net.ba org.ba bb biz.bb co.bb com.bb edu.bb gov.bb info.bb net.bb org.bb store.bb tv.bb *.bd be ac.be bf gov.bf bg 0.bg 1.bg 2.bg 3.bg 4.bg 5.bg 6.bg 7.bg 8.bg 9.bg a.bg b.bg c.bg d.bg e.bg f.bg g.bg h.bg i.bg j.bg k.bg l.bg m.bg n.bg o.bg p.bg q.bg r.bg s.bg t.bg u.bg v.bg w.bg x.bg y.bg z.bg bh com.bh edu.bh gov.bh net.bh org.bh bi co.bi com.bi edu.bi or.bi org.bi biz bj africa.bj agro.bj architectes.bj assur.bj avocats.bj co.bj com.bj eco.bj econo.bj edu.bj info.bj loisirs.bj money.bj net.bj org.bj ote.bj restaurant.bj resto.bj tourism.bj univ.bj bm com.bm edu.bm gov.bm net.bm org.bm bn com.bn edu.bn gov.bn net.bn org.bn bo com.bo edu.bo gob.bo int.bo mil.bo net.bo org.bo tv.bo web.bo academia.bo agro.bo arte.bo blog.bo bolivia.bo ciencia.bo cooperativa.bo democracia.bo deporte.bo ecologia.bo economia.bo empresa.bo indigena.bo industria.bo info.bo medicina.bo movimiento.bo musica.bo natural.bo nombre.bo noticias.bo patria.bo plurinacional.bo politica.bo profesional.bo pueblo.bo revista.bo salud.bo tecnologia.bo tksat.bo transporte.bo wiki.bo br 9guacu.br abc.br adm.br adv.br agr.br aju.br am.br anani.br aparecida.br app.br arq.br art.br ato.br b.br barueri.br belem.br bet.br bhz.br bib.br bio.br blog.br bmd.br boavista.br bsb.br campinagrande.br campinas.br caxias.br cim.br cng.br cnt.br com.br contagem.br coop.br coz.br cri.br cuiaba.br curitiba.br def.br des.br det.br dev.br ecn.br eco.br edu.br emp.br enf.br eng.br esp.br etc.br eti.br far.br feira.br flog.br floripa.br fm.br fnd.br fortal.br fot.br foz.br fst.br g12.br geo.br ggf.br goiania.br gov.br ac.gov.br al.gov.br am.gov.br ap.gov.br ba.gov.br ce.gov.br df.gov.br es.gov.br go.gov.br ma.gov.br mg.gov.br ms.gov.br mt.gov.br pa.gov.br pb.gov.br pe.gov.br pi.gov.br pr.gov.br rj.gov.br rn.gov.br ro.gov.br rr.gov.br rs.gov.br sc.gov.br se.gov.br sp.gov.br to.gov.br gru.br imb.br ind.br inf.br jab.br jampa.br jdf.br joinville.br jor.br jus.br leg.br leilao.br lel.br log.br londrina.br macapa.br maceio.br manaus.br maringa.br mat.br med.br mil.br morena.br mp.br mus.br natal.br net.br niteroi.br *.nom.br not.br ntr.br odo.br ong.br org.br osasco.br palmas.br poa.br ppg.br pro.br psc.br psi.br pvh.br qsl.br radio.br rec.br recife.br rep.br ribeirao.br rio.br riobranco.br riopreto.br salvador.br sampa.br santamaria.br santoandre.br saobernardo.br saogonca.br seg.br sjc.br slg.br slz.br sorocaba.br srv.br taxi.br tc.br tec.br teo.br the.br tmp.br trd.br tur.br tv.br udi.br vet.br vix.br vlog.br wiki.br zlg.br bs com.bs edu.bs gov.bs net.bs org.bs bt com.bt edu.bt gov.bt net.bt org.bt bv bw co.bw org.bw by gov.by mil.by com.by of.by bz co.bz com.bz edu.bz gov.bz net.bz org.bz ca ab.ca bc.ca mb.ca nb.ca nf.ca nl.ca ns.ca nt.ca nu.ca on.ca pe.ca qc.ca sk.ca yk.ca gc.ca cat cc cd gov.cd cf cg ch ci ac.ci a\u00e9roport.ci asso.ci co.ci com.ci ed.ci edu.ci go.ci gouv.ci int.ci net.ci or.ci org.ci *.ck !www.ck cl co.cl gob.cl gov.cl mil.cl cm co.cm com.cm gov.cm net.cm cn ac.cn com.cn edu.cn gov.cn mil.cn net.cn org.cn \u516c\u53f8.cn \u7db2\u7d61.cn \u7f51\u7edc.cn ah.cn bj.cn cq.cn fj.cn gd.cn gs.cn gx.cn gz.cn ha.cn hb.cn he.cn hi.cn hk.cn hl.cn hn.cn jl.cn js.cn jx.cn ln.cn mo.cn nm.cn nx.cn qh.cn sc.cn sd.cn sh.cn sn.cn sx.cn tj.cn tw.cn xj.cn xz.cn yn.cn zj.cn co com.co edu.co gov.co mil.co net.co nom.co org.co com coop cr ac.cr co.cr ed.cr fi.cr go.cr or.cr sa.cr cu com.cu edu.cu gob.cu inf.cu nat.cu net.cu org.cu cv com.cv edu.cv id.cv int.cv net.cv nome.cv org.cv publ.cv cw com.cw edu.cw net.cw org.cw cx gov.cx cy ac.cy biz.cy com.cy ekloges.cy gov.cy ltd.cy mil.cy net.cy org.cy press.cy pro.cy tm.cy cz de dj dk dm co.dm com.dm edu.dm gov.dm net.dm org.dm do art.do com.do edu.do gob.do gov.do mil.do net.do org.do sld.do web.do dz art.dz asso.dz com.dz edu.dz gov.dz net.dz org.dz pol.dz soc.dz tm.dz ec com.ec edu.ec fin.ec gob.ec gov.ec info.ec k12.ec med.ec mil.ec net.ec org.ec pro.ec edu ee aip.ee com.ee edu.ee fie.ee gov.ee lib.ee med.ee org.ee pri.ee riik.ee eg ac.eg com.eg edu.eg eun.eg gov.eg info.eg me.eg mil.eg name.eg net.eg org.eg sci.eg sport.eg tv.eg *.er es com.es edu.es gob.es nom.es org.es et biz.et com.et edu.et gov.et info.et name.et net.et org.et eu fi aland.fi fj ac.fj biz.fj com.fj gov.fj info.fj mil.fj name.fj net.fj org.fj pro.fj *.fk fm com.fm edu.fm net.fm org.fm fo fr asso.fr com.fr gouv.fr nom.fr prd.fr tm.fr avoues.fr cci.fr greta.fr huissier-justice.fr ga gb gd edu.gd gov.gd ge com.ge edu.ge gov.ge net.ge org.ge pvt.ge school.ge gf gg co.gg net.gg org.gg gh com.gh edu.gh gov.gh mil.gh org.gh gi com.gi edu.gi gov.gi ltd.gi mod.gi org.gi gl co.gl com.gl edu.gl net.gl org.gl gm gn ac.gn com.gn edu.gn gov.gn net.gn org.gn gov gp asso.gp com.gp edu.gp mobi.gp net.gp org.gp gq gr com.gr edu.gr gov.gr net.gr org.gr gs gt com.gt edu.gt gob.gt ind.gt mil.gt net.gt org.gt gu com.gu edu.gu gov.gu guam.gu info.gu net.gu org.gu web.gu gw gy co.gy com.gy edu.gy gov.gy net.gy org.gy hk com.hk edu.hk gov.hk idv.hk net.hk org.hk \u4e2a\u4eba.hk \u500b\u4eba.hk \u516c\u53f8.hk \u653f\u5e9c.hk \u654e\u80b2.hk \u6559\u80b2.hk \u7b87\u4eba.hk \u7d44\u7e54.hk \u7d44\u7ec7.hk \u7db2\u7d61.hk \u7db2\u7edc.hk \u7ec4\u7e54.hk \u7ec4\u7ec7.hk \u7f51\u7d61.hk \u7f51\u7edc.hk hm hn com.hn edu.hn gob.hn mil.hn net.hn org.hn hr com.hr from.hr iz.hr name.hr ht adult.ht art.ht asso.ht com.ht coop.ht edu.ht firm.ht gouv.ht info.ht med.ht net.ht org.ht perso.ht pol.ht pro.ht rel.ht shop.ht hu 2000.hu agrar.hu bolt.hu casino.hu city.hu co.hu erotica.hu erotika.hu film.hu forum.hu games.hu hotel.hu info.hu ingatlan.hu jogasz.hu konyvelo.hu lakas.hu media.hu news.hu org.hu priv.hu reklam.hu sex.hu shop.hu sport.hu suli.hu szex.hu tm.hu tozsde.hu utazas.hu video.hu id ac.id biz.id co.id desa.id go.id mil.id my.id net.id or.id ponpes.id sch.id web.id ie gov.ie il ac.il co.il gov.il idf.il k12.il muni.il net.il org.il \u05d9\u05e9\u05e8\u05d0\u05dc \u05d0\u05e7\u05d3\u05de\u05d9\u05d4.\u05d9\u05e9\u05e8\u05d0\u05dc \u05d9\u05e9\u05d5\u05d1.\u05d9\u05e9\u05e8\u05d0\u05dc \u05e6\u05d4\u05dc.\u05d9\u05e9\u05e8\u05d0\u05dc \u05de\u05de\u05e9\u05dc.\u05d9\u05e9\u05e8\u05d0\u05dc im ac.im co.im ltd.co.im plc.co.im com.im net.im org.im tt.im tv.im in 5g.in 6g.in ac.in ai.in am.in bihar.in biz.in business.in ca.in cn.in co.in com.in coop.in cs.in delhi.in dr.in edu.in er.in firm.in gen.in gov.in gujarat.in ind.in info.in int.in internet.in io.in me.in mil.in net.in nic.in org.in pg.in post.in pro.in res.in travel.in tv.in uk.in up.in us.in info int eu.int io co.io com.io edu.io gov.io mil.io net.io nom.io org.io iq com.iq edu.iq gov.iq mil.iq net.iq org.iq ir ac.ir co.ir gov.ir id.ir net.ir org.ir sch.ir \u0627\u06cc\u0631\u0627\u0646.ir \u0627\u064a\u0631\u0627\u0646.ir is it edu.it gov.it abr.it abruzzo.it aosta-valley.it aostavalley.it bas.it basilicata.it cal.it calabria.it cam.it campania.it emilia-romagna.it emiliaromagna.it emr.it friuli-v-giulia.it friuli-ve-giulia.it friuli-vegiulia.it friuli-venezia-giulia.it friuli-veneziagiulia.it friuli-vgiulia.it friuliv-giulia.it friulive-giulia.it friulivegiulia.it friulivenezia-giulia.it friuliveneziagiulia.it friulivgiulia.it fvg.it laz.it lazio.it lig.it liguria.it lom.it lombardia.it lombardy.it lucania.it mar.it marche.it mol.it molise.it piedmont.it piemonte.it pmn.it pug.it puglia.it sar.it sardegna.it sardinia.it sic.it sicilia.it sicily.it taa.it tos.it toscana.it trentin-sud-tirol.it trentin-s\u00fcd-tirol.it trentin-sudtirol.it trentin-s\u00fcdtirol.it trentin-sued-tirol.it trentin-suedtirol.it trentino.it trentino-a-adige.it trentino-aadige.it trentino-alto-adige.it trentino-altoadige.it trentino-s-tirol.it trentino-stirol.it trentino-sud-tirol.it trentino-s\u00fcd-tirol.it trentino-sudtirol.it trentino-s\u00fcdtirol.it trentino-sued-tirol.it trentino-suedtirol.it trentinoa-adige.it trentinoaadige.it trentinoalto-adige.it trentinoaltoadige.it trentinos-tirol.it trentinostirol.it trentinosud-tirol.it trentinos\u00fcd-tirol.it trentinosudtirol.it trentinos\u00fcdtirol.it trentinosued-tirol.it trentinosuedtirol.it trentinsud-tirol.it trentins\u00fcd-tirol.it trentinsudtirol.it trentins\u00fcdtirol.it trentinsued-tirol.it trentinsuedtirol.it tuscany.it umb.it umbria.it val-d-aosta.it val-daosta.it vald-aosta.it valdaosta.it valle-aosta.it valle-d-aosta.it valle-daosta.it valleaosta.it valled-aosta.it valledaosta.it vallee-aoste.it vall\u00e9e-aoste.it vallee-d-aoste.it vall\u00e9e-d-aoste.it valleeaoste.it vall\u00e9eaoste.it valleedaoste.it vall\u00e9edaoste.it vao.it vda.it ven.it veneto.it ag.it agrigento.it al.it alessandria.it alto-adige.it altoadige.it an.it ancona.it andria-barletta-trani.it andria-trani-barletta.it andriabarlettatrani.it andriatranibarletta.it ao.it aosta.it aoste.it ap.it aq.it aquila.it ar.it arezzo.it ascoli-piceno.it ascolipiceno.it asti.it at.it av.it avellino.it ba.it balsan.it balsan-sudtirol.it balsan-s\u00fcdtirol.it balsan-suedtirol.it bari.it barletta-trani-andria.it barlettatraniandria.it belluno.it benevento.it bergamo.it bg.it bi.it biella.it bl.it bn.it bo.it bologna.it bolzano.it bolzano-altoadige.it bozen.it bozen-sudtirol.it bozen-s\u00fcdtirol.it bozen-suedtirol.it br.it brescia.it brindisi.it bs.it bt.it bulsan.it bulsan-sudtirol.it bulsan-s\u00fcdtirol.it bulsan-suedtirol.it bz.it ca.it cagliari.it caltanissetta.it campidano-medio.it campidanomedio.it campobasso.it carbonia-iglesias.it carboniaiglesias.it carrara-massa.it carraramassa.it caserta.it catania.it catanzaro.it cb.it ce.it cesena-forli.it cesena-forl\u00ec.it cesenaforli.it cesenaforl\u00ec.it ch.it chieti.it ci.it cl.it cn.it co.it como.it cosenza.it cr.it cremona.it crotone.it cs.it ct.it cuneo.it cz.it dell-ogliastra.it dellogliastra.it en.it enna.it fc.it fe.it fermo.it ferrara.it fg.it fi.it firenze.it florence.it fm.it foggia.it forli-cesena.it forl\u00ec-cesena.it forlicesena.it forl\u00eccesena.it fr.it frosinone.it ge.it genoa.it genova.it go.it gorizia.it gr.it grosseto.it iglesias-carbonia.it iglesiascarbonia.it im.it imperia.it is.it isernia.it kr.it la-spezia.it laquila.it laspezia.it latina.it lc.it le.it lecce.it lecco.it li.it livorno.it lo.it lodi.it lt.it lu.it lucca.it macerata.it mantova.it massa-carrara.it massacarrara.it matera.it mb.it mc.it me.it medio-campidano.it mediocampidano.it messina.it mi.it milan.it milano.it mn.it mo.it modena.it monza.it monza-brianza.it monza-e-della-brianza.it monzabrianza.it monzaebrianza.it monzaedellabrianza.it ms.it mt.it na.it naples.it napoli.it no.it novara.it nu.it nuoro.it og.it ogliastra.it olbia-tempio.it olbiatempio.it or.it oristano.it ot.it pa.it padova.it padua.it palermo.it parma.it pavia.it pc.it pd.it pe.it perugia.it pesaro-urbino.it pesarourbino.it pescara.it pg.it pi.it piacenza.it pisa.it pistoia.it pn.it po.it pordenone.it potenza.it pr.it prato.it pt.it pu.it pv.it pz.it ra.it ragusa.it ravenna.it rc.it re.it reggio-calabria.it reggio-emilia.it reggiocalabria.it reggioemilia.it rg.it ri.it rieti.it rimini.it rm.it rn.it ro.it roma.it rome.it rovigo.it sa.it salerno.it sassari.it savona.it si.it siena.it siracusa.it so.it sondrio.it sp.it sr.it ss.it s\u00fcdtirol.it suedtirol.it sv.it ta.it taranto.it te.it tempio-olbia.it tempioolbia.it teramo.it terni.it tn.it to.it torino.it tp.it tr.it trani-andria-barletta.it trani-barletta-andria.it traniandriabarletta.it tranibarlettaandria.it trapani.it trento.it treviso.it trieste.it ts.it turin.it tv.it ud.it udine.it urbino-pesaro.it urbinopesaro.it va.it varese.it vb.it vc.it ve.it venezia.it venice.it verbania.it vercelli.it verona.it vi.it vibo-valentia.it vibovalentia.it vicenza.it viterbo.it vr.it vs.it vt.it vv.it je co.je net.je org.je *.jm jo agri.jo ai.jo com.jo edu.jo eng.jo fm.jo gov.jo mil.jo net.jo org.jo per.jo phd.jo sch.jo tv.jo jobs jp ac.jp ad.jp co.jp ed.jp go.jp gr.jp lg.jp ne.jp or.jp aichi.jp akita.jp aomori.jp chiba.jp ehime.jp fukui.jp fukuoka.jp fukushima.jp gifu.jp gunma.jp hiroshima.jp hokkaido.jp hyogo.jp ibaraki.jp ishikawa.jp iwate.jp kagawa.jp kagoshima.jp kanagawa.jp kochi.jp kumamoto.jp kyoto.jp mie.jp miyagi.jp miyazaki.jp nagano.jp nagasaki.jp nara.jp niigata.jp oita.jp okayama.jp okinawa.jp osaka.jp saga.jp saitama.jp shiga.jp shimane.jp shizuoka.jp tochigi.jp tokushima.jp tokyo.jp tottori.jp toyama.jp wakayama.jp yamagata.jp yamaguchi.jp yamanashi.jp \u4e09\u91cd.jp \u4eac\u90fd.jp \u4f50\u8cc0.jp \u5175\u5eab.jp \u5317\u6d77\u9053.jp \u5343\u8449.jp \u548c\u6b4c\u5c71.jp \u57fc\u7389.jp \u5927\u5206.jp \u5927\u962a.jp \u5948\u826f.jp \u5bae\u57ce.jp \u5bae\u5d0e.jp \u5bcc\u5c71.jp \u5c71\u53e3.jp \u5c71\u5f62.jp \u5c71\u68a8.jp \u5c90\u961c.jp \u5ca1\u5c71.jp \u5ca9\u624b.jp \u5cf6\u6839.jp \u5e83\u5cf6.jp \u5fb3\u5cf6.jp \u611b\u5a9b.jp \u611b\u77e5.jp \u65b0\u6f5f.jp \u6771\u4eac.jp \u6803\u6728.jp \u6c96\u7e04.jp \u6ecb\u8cc0.jp \u718a\u672c.jp \u77f3\u5ddd.jp \u795e\u5948\u5ddd.jp \u798f\u4e95.jp \u798f\u5ca1.jp \u798f\u5cf6.jp \u79cb\u7530.jp \u7fa4\u99ac.jp \u8328\u57ce.jp \u9577\u5d0e.jp \u9577\u91ce.jp \u9752\u68ee.jp \u9759\u5ca1.jp \u9999\u5ddd.jp \u9ad8\u77e5.jp \u9ce5\u53d6.jp \u9e7f\u5150\u5cf6.jp *.kawasaki.jp !city.kawasaki.jp *.kitakyushu.jp !city.kitakyushu.jp *.kobe.jp !city.kobe.jp *.nagoya.jp !city.nagoya.jp *.sapporo.jp !city.sapporo.jp *.sendai.jp !city.sendai.jp *.yokohama.jp !city.yokohama.jp aisai.aichi.jp ama.aichi.jp anjo.aichi.jp asuke.aichi.jp chiryu.aichi.jp chita.aichi.jp fuso.aichi.jp gamagori.aichi.jp handa.aichi.jp hazu.aichi.jp hekinan.aichi.jp higashiura.aichi.jp ichinomiya.aichi.jp inazawa.aichi.jp inuyama.aichi.jp isshiki.aichi.jp iwakura.aichi.jp kanie.aichi.jp kariya.aichi.jp kasugai.aichi.jp kira.aichi.jp kiyosu.aichi.jp komaki.aichi.jp konan.aichi.jp kota.aichi.jp mihama.aichi.jp miyoshi.aichi.jp nishio.aichi.jp nisshin.aichi.jp obu.aichi.jp oguchi.aichi.jp oharu.aichi.jp okazaki.aichi.jp owariasahi.aichi.jp seto.aichi.jp shikatsu.aichi.jp shinshiro.aichi.jp shitara.aichi.jp tahara.aichi.jp takahama.aichi.jp tobishima.aichi.jp toei.aichi.jp togo.aichi.jp tokai.aichi.jp tokoname.aichi.jp toyoake.aichi.jp toyohashi.aichi.jp toyokawa.aichi.jp toyone.aichi.jp toyota.aichi.jp tsushima.aichi.jp yatomi.aichi.jp akita.akita.jp daisen.akita.jp fujisato.akita.jp gojome.akita.jp hachirogata.akita.jp happou.akita.jp higashinaruse.akita.jp honjo.akita.jp honjyo.akita.jp ikawa.akita.jp kamikoani.akita.jp kamioka.akita.jp katagami.akita.jp kazuno.akita.jp kitaakita.akita.jp kosaka.akita.jp kyowa.akita.jp misato.akita.jp mitane.akita.jp moriyoshi.akita.jp nikaho.akita.jp noshiro.akita.jp odate.akita.jp oga.akita.jp ogata.akita.jp semboku.akita.jp yokote.akita.jp yurihonjo.akita.jp aomori.aomori.jp gonohe.aomori.jp hachinohe.aomori.jp hashikami.aomori.jp hiranai.aomori.jp hirosaki.aomori.jp itayanagi.aomori.jp kuroishi.aomori.jp misawa.aomori.jp mutsu.aomori.jp nakadomari.aomori.jp noheji.aomori.jp oirase.aomori.jp owani.aomori.jp rokunohe.aomori.jp sannohe.aomori.jp shichinohe.aomori.jp shingo.aomori.jp takko.aomori.jp towada.aomori.jp tsugaru.aomori.jp tsuruta.aomori.jp abiko.chiba.jp asahi.chiba.jp chonan.chiba.jp chosei.chiba.jp choshi.chiba.jp chuo.chiba.jp funabashi.chiba.jp futtsu.chiba.jp hanamigawa.chiba.jp ichihara.chiba.jp ichikawa.chiba.jp ichinomiya.chiba.jp inzai.chiba.jp isumi.chiba.jp kamagaya.chiba.jp kamogawa.chiba.jp kashiwa.chiba.jp katori.chiba.jp katsuura.chiba.jp kimitsu.chiba.jp kisarazu.chiba.jp kozaki.chiba.jp kujukuri.chiba.jp kyonan.chiba.jp matsudo.chiba.jp midori.chiba.jp mihama.chiba.jp minamiboso.chiba.jp mobara.chiba.jp mutsuzawa.chiba.jp nagara.chiba.jp nagareyama.chiba.jp narashino.chiba.jp narita.chiba.jp noda.chiba.jp oamishirasato.chiba.jp omigawa.chiba.jp onjuku.chiba.jp otaki.chiba.jp sakae.chiba.jp sakura.chiba.jp shimofusa.chiba.jp shirako.chiba.jp shiroi.chiba.jp shisui.chiba.jp sodegaura.chiba.jp sosa.chiba.jp tako.chiba.jp tateyama.chiba.jp togane.chiba.jp tohnosho.chiba.jp tomisato.chiba.jp urayasu.chiba.jp yachimata.chiba.jp yachiyo.chiba.jp yokaichiba.chiba.jp yokoshibahikari.chiba.jp yotsukaido.chiba.jp ainan.ehime.jp honai.ehime.jp ikata.ehime.jp imabari.ehime.jp iyo.ehime.jp kamijima.ehime.jp kihoku.ehime.jp kumakogen.ehime.jp masaki.ehime.jp matsuno.ehime.jp matsuyama.ehime.jp namikata.ehime.jp niihama.ehime.jp ozu.ehime.jp saijo.ehime.jp seiyo.ehime.jp shikokuchuo.ehime.jp tobe.ehime.jp toon.ehime.jp uchiko.ehime.jp uwajima.ehime.jp yawatahama.ehime.jp echizen.fukui.jp eiheiji.fukui.jp fukui.fukui.jp ikeda.fukui.jp katsuyama.fukui.jp mihama.fukui.jp minamiechizen.fukui.jp obama.fukui.jp ohi.fukui.jp ono.fukui.jp sabae.fukui.jp sakai.fukui.jp takahama.fukui.jp tsuruga.fukui.jp wakasa.fukui.jp ashiya.fukuoka.jp buzen.fukuoka.jp chikugo.fukuoka.jp chikuho.fukuoka.jp chikujo.fukuoka.jp chikushino.fukuoka.jp chikuzen.fukuoka.jp chuo.fukuoka.jp dazaifu.fukuoka.jp fukuchi.fukuoka.jp hakata.fukuoka.jp higashi.fukuoka.jp hirokawa.fukuoka.jp hisayama.fukuoka.jp iizuka.fukuoka.jp inatsuki.fukuoka.jp kaho.fukuoka.jp kasuga.fukuoka.jp kasuya.fukuoka.jp kawara.fukuoka.jp keisen.fukuoka.jp koga.fukuoka.jp kurate.fukuoka.jp kurogi.fukuoka.jp kurume.fukuoka.jp minami.fukuoka.jp miyako.fukuoka.jp miyama.fukuoka.jp miyawaka.fukuoka.jp mizumaki.fukuoka.jp munakata.fukuoka.jp nakagawa.fukuoka.jp nakama.fukuoka.jp nishi.fukuoka.jp nogata.fukuoka.jp ogori.fukuoka.jp okagaki.fukuoka.jp okawa.fukuoka.jp oki.fukuoka.jp omuta.fukuoka.jp onga.fukuoka.jp onojo.fukuoka.jp oto.fukuoka.jp saigawa.fukuoka.jp sasaguri.fukuoka.jp shingu.fukuoka.jp shinyoshitomi.fukuoka.jp shonai.fukuoka.jp soeda.fukuoka.jp sue.fukuoka.jp tachiarai.fukuoka.jp tagawa.fukuoka.jp takata.fukuoka.jp toho.fukuoka.jp toyotsu.fukuoka.jp tsuiki.fukuoka.jp ukiha.fukuoka.jp umi.fukuoka.jp usui.fukuoka.jp yamada.fukuoka.jp yame.fukuoka.jp yanagawa.fukuoka.jp yukuhashi.fukuoka.jp aizubange.fukushima.jp aizumisato.fukushima.jp aizuwakamatsu.fukushima.jp asakawa.fukushima.jp bandai.fukushima.jp date.fukushima.jp fukushima.fukushima.jp furudono.fukushima.jp futaba.fukushima.jp hanawa.fukushima.jp higashi.fukushima.jp hirata.fukushima.jp hirono.fukushima.jp iitate.fukushima.jp inawashiro.fukushima.jp ishikawa.fukushima.jp iwaki.fukushima.jp izumizaki.fukushima.jp kagamiishi.fukushima.jp kaneyama.fukushima.jp kawamata.fukushima.jp kitakata.fukushima.jp kitashiobara.fukushima.jp koori.fukushima.jp koriyama.fukushima.jp kunimi.fukushima.jp miharu.fukushima.jp mishima.fukushima.jp namie.fukushima.jp nango.fukushima.jp nishiaizu.fukushima.jp nishigo.fukushima.jp okuma.fukushima.jp omotego.fukushima.jp ono.fukushima.jp otama.fukushima.jp samegawa.fukushima.jp shimogo.fukushima.jp shirakawa.fukushima.jp showa.fukushima.jp soma.fukushima.jp sukagawa.fukushima.jp taishin.fukushima.jp tamakawa.fukushima.jp tanagura.fukushima.jp tenei.fukushima.jp yabuki.fukushima.jp yamato.fukushima.jp yamatsuri.fukushima.jp yanaizu.fukushima.jp yugawa.fukushima.jp anpachi.gifu.jp ena.gifu.jp gifu.gifu.jp ginan.gifu.jp godo.gifu.jp gujo.gifu.jp hashima.gifu.jp hichiso.gifu.jp hida.gifu.jp higashishirakawa.gifu.jp ibigawa.gifu.jp ikeda.gifu.jp kakamigahara.gifu.jp kani.gifu.jp kasahara.gifu.jp kasamatsu.gifu.jp kawaue.gifu.jp kitagata.gifu.jp mino.gifu.jp minokamo.gifu.jp mitake.gifu.jp mizunami.gifu.jp motosu.gifu.jp nakatsugawa.gifu.jp ogaki.gifu.jp sakahogi.gifu.jp seki.gifu.jp sekigahara.gifu.jp shirakawa.gifu.jp tajimi.gifu.jp takayama.gifu.jp tarui.gifu.jp toki.gifu.jp tomika.gifu.jp wanouchi.gifu.jp yamagata.gifu.jp yaotsu.gifu.jp yoro.gifu.jp annaka.gunma.jp chiyoda.gunma.jp fujioka.gunma.jp higashiagatsuma.gunma.jp isesaki.gunma.jp itakura.gunma.jp kanna.gunma.jp kanra.gunma.jp katashina.gunma.jp kawaba.gunma.jp kiryu.gunma.jp kusatsu.gunma.jp maebashi.gunma.jp meiwa.gunma.jp midori.gunma.jp minakami.gunma.jp naganohara.gunma.jp nakanojo.gunma.jp nanmoku.gunma.jp numata.gunma.jp oizumi.gunma.jp ora.gunma.jp ota.gunma.jp shibukawa.gunma.jp shimonita.gunma.jp shinto.gunma.jp showa.gunma.jp takasaki.gunma.jp takayama.gunma.jp tamamura.gunma.jp tatebayashi.gunma.jp tomioka.gunma.jp tsukiyono.gunma.jp tsumagoi.gunma.jp ueno.gunma.jp yoshioka.gunma.jp asaminami.hiroshima.jp daiwa.hiroshima.jp etajima.hiroshima.jp fuchu.hiroshima.jp fukuyama.hiroshima.jp hatsukaichi.hiroshima.jp higashihiroshima.hiroshima.jp hongo.hiroshima.jp jinsekikogen.hiroshima.jp kaita.hiroshima.jp kui.hiroshima.jp kumano.hiroshima.jp kure.hiroshima.jp mihara.hiroshima.jp miyoshi.hiroshima.jp naka.hiroshima.jp onomichi.hiroshima.jp osakikamijima.hiroshima.jp otake.hiroshima.jp saka.hiroshima.jp sera.hiroshima.jp seranishi.hiroshima.jp shinichi.hiroshima.jp shobara.hiroshima.jp takehara.hiroshima.jp abashiri.hokkaido.jp abira.hokkaido.jp aibetsu.hokkaido.jp akabira.hokkaido.jp akkeshi.hokkaido.jp asahikawa.hokkaido.jp ashibetsu.hokkaido.jp ashoro.hokkaido.jp assabu.hokkaido.jp atsuma.hokkaido.jp bibai.hokkaido.jp biei.hokkaido.jp bifuka.hokkaido.jp bihoro.hokkaido.jp biratori.hokkaido.jp chippubetsu.hokkaido.jp chitose.hokkaido.jp date.hokkaido.jp ebetsu.hokkaido.jp embetsu.hokkaido.jp eniwa.hokkaido.jp erimo.hokkaido.jp esan.hokkaido.jp esashi.hokkaido.jp fukagawa.hokkaido.jp fukushima.hokkaido.jp furano.hokkaido.jp furubira.hokkaido.jp haboro.hokkaido.jp hakodate.hokkaido.jp hamatonbetsu.hokkaido.jp hidaka.hokkaido.jp higashikagura.hokkaido.jp higashikawa.hokkaido.jp hiroo.hokkaido.jp hokuryu.hokkaido.jp hokuto.hokkaido.jp honbetsu.hokkaido.jp horokanai.hokkaido.jp horonobe.hokkaido.jp ikeda.hokkaido.jp imakane.hokkaido.jp ishikari.hokkaido.jp iwamizawa.hokkaido.jp iwanai.hokkaido.jp kamifurano.hokkaido.jp kamikawa.hokkaido.jp kamishihoro.hokkaido.jp kamisunagawa.hokkaido.jp kamoenai.hokkaido.jp kayabe.hokkaido.jp kembuchi.hokkaido.jp kikonai.hokkaido.jp kimobetsu.hokkaido.jp kitahiroshima.hokkaido.jp kitami.hokkaido.jp kiyosato.hokkaido.jp koshimizu.hokkaido.jp kunneppu.hokkaido.jp kuriyama.hokkaido.jp kuromatsunai.hokkaido.jp kushiro.hokkaido.jp kutchan.hokkaido.jp kyowa.hokkaido.jp mashike.hokkaido.jp matsumae.hokkaido.jp mikasa.hokkaido.jp minamifurano.hokkaido.jp mombetsu.hokkaido.jp moseushi.hokkaido.jp mukawa.hokkaido.jp muroran.hokkaido.jp naie.hokkaido.jp nakagawa.hokkaido.jp nakasatsunai.hokkaido.jp nakatombetsu.hokkaido.jp nanae.hokkaido.jp nanporo.hokkaido.jp nayoro.hokkaido.jp nemuro.hokkaido.jp niikappu.hokkaido.jp niki.hokkaido.jp nishiokoppe.hokkaido.jp noboribetsu.hokkaido.jp numata.hokkaido.jp obihiro.hokkaido.jp obira.hokkaido.jp oketo.hokkaido.jp okoppe.hokkaido.jp otaru.hokkaido.jp otobe.hokkaido.jp otofuke.hokkaido.jp otoineppu.hokkaido.jp oumu.hokkaido.jp ozora.hokkaido.jp pippu.hokkaido.jp rankoshi.hokkaido.jp rebun.hokkaido.jp rikubetsu.hokkaido.jp rishiri.hokkaido.jp rishirifuji.hokkaido.jp saroma.hokkaido.jp sarufutsu.hokkaido.jp shakotan.hokkaido.jp shari.hokkaido.jp shibecha.hokkaido.jp shibetsu.hokkaido.jp shikabe.hokkaido.jp shikaoi.hokkaido.jp shimamaki.hokkaido.jp shimizu.hokkaido.jp shimokawa.hokkaido.jp shinshinotsu.hokkaido.jp shintoku.hokkaido.jp shiranuka.hokkaido.jp shiraoi.hokkaido.jp shiriuchi.hokkaido.jp sobetsu.hokkaido.jp sunagawa.hokkaido.jp taiki.hokkaido.jp takasu.hokkaido.jp takikawa.hokkaido.jp takinoue.hokkaido.jp teshikaga.hokkaido.jp tobetsu.hokkaido.jp tohma.hokkaido.jp tomakomai.hokkaido.jp tomari.hokkaido.jp toya.hokkaido.jp toyako.hokkaido.jp toyotomi.hokkaido.jp toyoura.hokkaido.jp tsubetsu.hokkaido.jp tsukigata.hokkaido.jp urakawa.hokkaido.jp urausu.hokkaido.jp uryu.hokkaido.jp utashinai.hokkaido.jp wakkanai.hokkaido.jp wassamu.hokkaido.jp yakumo.hokkaido.jp yoichi.hokkaido.jp aioi.hyogo.jp akashi.hyogo.jp ako.hyogo.jp amagasaki.hyogo.jp aogaki.hyogo.jp asago.hyogo.jp ashiya.hyogo.jp awaji.hyogo.jp fukusaki.hyogo.jp goshiki.hyogo.jp harima.hyogo.jp himeji.hyogo.jp ichikawa.hyogo.jp inagawa.hyogo.jp itami.hyogo.jp kakogawa.hyogo.jp kamigori.hyogo.jp kamikawa.hyogo.jp kasai.hyogo.jp kasuga.hyogo.jp kawanishi.hyogo.jp miki.hyogo.jp minamiawaji.hyogo.jp nishinomiya.hyogo.jp nishiwaki.hyogo.jp ono.hyogo.jp sanda.hyogo.jp sannan.hyogo.jp sasayama.hyogo.jp sayo.hyogo.jp shingu.hyogo.jp shinonsen.hyogo.jp shiso.hyogo.jp sumoto.hyogo.jp taishi.hyogo.jp taka.hyogo.jp takarazuka.hyogo.jp takasago.hyogo.jp takino.hyogo.jp tamba.hyogo.jp tatsuno.hyogo.jp toyooka.hyogo.jp yabu.hyogo.jp yashiro.hyogo.jp yoka.hyogo.jp yokawa.hyogo.jp ami.ibaraki.jp asahi.ibaraki.jp bando.ibaraki.jp chikusei.ibaraki.jp daigo.ibaraki.jp fujishiro.ibaraki.jp hitachi.ibaraki.jp hitachinaka.ibaraki.jp hitachiomiya.ibaraki.jp hitachiota.ibaraki.jp ibaraki.ibaraki.jp ina.ibaraki.jp inashiki.ibaraki.jp itako.ibaraki.jp iwama.ibaraki.jp joso.ibaraki.jp kamisu.ibaraki.jp kasama.ibaraki.jp kashima.ibaraki.jp kasumigaura.ibaraki.jp koga.ibaraki.jp miho.ibaraki.jp mito.ibaraki.jp moriya.ibaraki.jp naka.ibaraki.jp namegata.ibaraki.jp oarai.ibaraki.jp ogawa.ibaraki.jp omitama.ibaraki.jp ryugasaki.ibaraki.jp sakai.ibaraki.jp sakuragawa.ibaraki.jp shimodate.ibaraki.jp shimotsuma.ibaraki.jp shirosato.ibaraki.jp sowa.ibaraki.jp suifu.ibaraki.jp takahagi.ibaraki.jp tamatsukuri.ibaraki.jp tokai.ibaraki.jp tomobe.ibaraki.jp tone.ibaraki.jp toride.ibaraki.jp tsuchiura.ibaraki.jp tsukuba.ibaraki.jp uchihara.ibaraki.jp ushiku.ibaraki.jp yachiyo.ibaraki.jp yamagata.ibaraki.jp yawara.ibaraki.jp yuki.ibaraki.jp anamizu.ishikawa.jp hakui.ishikawa.jp hakusan.ishikawa.jp kaga.ishikawa.jp kahoku.ishikawa.jp kanazawa.ishikawa.jp kawakita.ishikawa.jp komatsu.ishikawa.jp nakanoto.ishikawa.jp nanao.ishikawa.jp nomi.ishikawa.jp nonoichi.ishikawa.jp noto.ishikawa.jp shika.ishikawa.jp suzu.ishikawa.jp tsubata.ishikawa.jp tsurugi.ishikawa.jp uchinada.ishikawa.jp wajima.ishikawa.jp fudai.iwate.jp fujisawa.iwate.jp hanamaki.iwate.jp hiraizumi.iwate.jp hirono.iwate.jp ichinohe.iwate.jp ichinoseki.iwate.jp iwaizumi.iwate.jp iwate.iwate.jp joboji.iwate.jp kamaishi.iwate.jp kanegasaki.iwate.jp karumai.iwate.jp kawai.iwate.jp kitakami.iwate.jp kuji.iwate.jp kunohe.iwate.jp kuzumaki.iwate.jp miyako.iwate.jp mizusawa.iwate.jp morioka.iwate.jp ninohe.iwate.jp noda.iwate.jp ofunato.iwate.jp oshu.iwate.jp otsuchi.iwate.jp rikuzentakata.iwate.jp shiwa.iwate.jp shizukuishi.iwate.jp sumita.iwate.jp tanohata.iwate.jp tono.iwate.jp yahaba.iwate.jp yamada.iwate.jp ayagawa.kagawa.jp higashikagawa.kagawa.jp kanonji.kagawa.jp kotohira.kagawa.jp manno.kagawa.jp marugame.kagawa.jp mitoyo.kagawa.jp naoshima.kagawa.jp sanuki.kagawa.jp tadotsu.kagawa.jp takamatsu.kagawa.jp tonosho.kagawa.jp uchinomi.kagawa.jp utazu.kagawa.jp zentsuji.kagawa.jp akune.kagoshima.jp amami.kagoshima.jp hioki.kagoshima.jp isa.kagoshima.jp isen.kagoshima.jp izumi.kagoshima.jp kagoshima.kagoshima.jp kanoya.kagoshima.jp kawanabe.kagoshima.jp kinko.kagoshima.jp kouyama.kagoshima.jp makurazaki.kagoshima.jp matsumoto.kagoshima.jp minamitane.kagoshima.jp nakatane.kagoshima.jp nishinoomote.kagoshima.jp satsumasendai.kagoshima.jp soo.kagoshima.jp tarumizu.kagoshima.jp yusui.kagoshima.jp aikawa.kanagawa.jp atsugi.kanagawa.jp ayase.kanagawa.jp chigasaki.kanagawa.jp ebina.kanagawa.jp fujisawa.kanagawa.jp hadano.kanagawa.jp hakone.kanagawa.jp hiratsuka.kanagawa.jp isehara.kanagawa.jp kaisei.kanagawa.jp kamakura.kanagawa.jp kiyokawa.kanagawa.jp matsuda.kanagawa.jp minamiashigara.kanagawa.jp miura.kanagawa.jp nakai.kanagawa.jp ninomiya.kanagawa.jp odawara.kanagawa.jp oi.kanagawa.jp oiso.kanagawa.jp sagamihara.kanagawa.jp samukawa.kanagawa.jp tsukui.kanagawa.jp yamakita.kanagawa.jp yamato.kanagawa.jp yokosuka.kanagawa.jp yugawara.kanagawa.jp zama.kanagawa.jp zushi.kanagawa.jp aki.kochi.jp geisei.kochi.jp hidaka.kochi.jp higashitsuno.kochi.jp ino.kochi.jp kagami.kochi.jp kami.kochi.jp kitagawa.kochi.jp kochi.kochi.jp mihara.kochi.jp motoyama.kochi.jp muroto.kochi.jp nahari.kochi.jp nakamura.kochi.jp nankoku.kochi.jp nishitosa.kochi.jp niyodogawa.kochi.jp ochi.kochi.jp okawa.kochi.jp otoyo.kochi.jp otsuki.kochi.jp sakawa.kochi.jp sukumo.kochi.jp susaki.kochi.jp tosa.kochi.jp tosashimizu.kochi.jp toyo.kochi.jp tsuno.kochi.jp umaji.kochi.jp yasuda.kochi.jp yusuhara.kochi.jp amakusa.kumamoto.jp arao.kumamoto.jp aso.kumamoto.jp choyo.kumamoto.jp gyokuto.kumamoto.jp kamiamakusa.kumamoto.jp kikuchi.kumamoto.jp kumamoto.kumamoto.jp mashiki.kumamoto.jp mifune.kumamoto.jp minamata.kumamoto.jp minamioguni.kumamoto.jp nagasu.kumamoto.jp nishihara.kumamoto.jp oguni.kumamoto.jp ozu.kumamoto.jp sumoto.kumamoto.jp takamori.kumamoto.jp uki.kumamoto.jp uto.kumamoto.jp yamaga.kumamoto.jp yamato.kumamoto.jp yatsushiro.kumamoto.jp ayabe.kyoto.jp fukuchiyama.kyoto.jp higashiyama.kyoto.jp ide.kyoto.jp ine.kyoto.jp joyo.kyoto.jp kameoka.kyoto.jp kamo.kyoto.jp kita.kyoto.jp kizu.kyoto.jp kumiyama.kyoto.jp kyotamba.kyoto.jp kyotanabe.kyoto.jp kyotango.kyoto.jp maizuru.kyoto.jp minami.kyoto.jp minamiyamashiro.kyoto.jp miyazu.kyoto.jp muko.kyoto.jp nagaokakyo.kyoto.jp nakagyo.kyoto.jp nantan.kyoto.jp oyamazaki.kyoto.jp sakyo.kyoto.jp seika.kyoto.jp tanabe.kyoto.jp uji.kyoto.jp ujitawara.kyoto.jp wazuka.kyoto.jp yamashina.kyoto.jp yawata.kyoto.jp asahi.mie.jp inabe.mie.jp ise.mie.jp kameyama.mie.jp kawagoe.mie.jp kiho.mie.jp kisosaki.mie.jp kiwa.mie.jp komono.mie.jp kumano.mie.jp kuwana.mie.jp matsusaka.mie.jp meiwa.mie.jp mihama.mie.jp minamiise.mie.jp misugi.mie.jp miyama.mie.jp nabari.mie.jp shima.mie.jp suzuka.mie.jp tado.mie.jp taiki.mie.jp taki.mie.jp tamaki.mie.jp toba.mie.jp tsu.mie.jp udono.mie.jp ureshino.mie.jp watarai.mie.jp yokkaichi.mie.jp furukawa.miyagi.jp higashimatsushima.miyagi.jp ishinomaki.miyagi.jp iwanuma.miyagi.jp kakuda.miyagi.jp kami.miyagi.jp kawasaki.miyagi.jp marumori.miyagi.jp matsushima.miyagi.jp minamisanriku.miyagi.jp misato.miyagi.jp murata.miyagi.jp natori.miyagi.jp ogawara.miyagi.jp ohira.miyagi.jp onagawa.miyagi.jp osaki.miyagi.jp rifu.miyagi.jp semine.miyagi.jp shibata.miyagi.jp shichikashuku.miyagi.jp shikama.miyagi.jp shiogama.miyagi.jp shiroishi.miyagi.jp tagajo.miyagi.jp taiwa.miyagi.jp tome.miyagi.jp tomiya.miyagi.jp wakuya.miyagi.jp watari.miyagi.jp yamamoto.miyagi.jp zao.miyagi.jp aya.miyazaki.jp ebino.miyazaki.jp gokase.miyazaki.jp hyuga.miyazaki.jp kadogawa.miyazaki.jp kawaminami.miyazaki.jp kijo.miyazaki.jp kitagawa.miyazaki.jp kitakata.miyazaki.jp kitaura.miyazaki.jp kobayashi.miyazaki.jp kunitomi.miyazaki.jp kushima.miyazaki.jp mimata.miyazaki.jp miyakonojo.miyazaki.jp miyazaki.miyazaki.jp morotsuka.miyazaki.jp nichinan.miyazaki.jp nishimera.miyazaki.jp nobeoka.miyazaki.jp saito.miyazaki.jp shiiba.miyazaki.jp shintomi.miyazaki.jp takaharu.miyazaki.jp takanabe.miyazaki.jp takazaki.miyazaki.jp tsuno.miyazaki.jp achi.nagano.jp agematsu.nagano.jp anan.nagano.jp aoki.nagano.jp asahi.nagano.jp azumino.nagano.jp chikuhoku.nagano.jp chikuma.nagano.jp chino.nagano.jp fujimi.nagano.jp hakuba.nagano.jp hara.nagano.jp hiraya.nagano.jp iida.nagano.jp iijima.nagano.jp iiyama.nagano.jp iizuna.nagano.jp ikeda.nagano.jp ikusaka.nagano.jp ina.nagano.jp karuizawa.nagano.jp kawakami.nagano.jp kiso.nagano.jp kisofukushima.nagano.jp kitaaiki.nagano.jp komagane.nagano.jp komoro.nagano.jp matsukawa.nagano.jp matsumoto.nagano.jp miasa.nagano.jp minamiaiki.nagano.jp minamimaki.nagano.jp minamiminowa.nagano.jp minowa.nagano.jp miyada.nagano.jp miyota.nagano.jp mochizuki.nagano.jp nagano.nagano.jp nagawa.nagano.jp nagiso.nagano.jp nakagawa.nagano.jp nakano.nagano.jp nozawaonsen.nagano.jp obuse.nagano.jp ogawa.nagano.jp okaya.nagano.jp omachi.nagano.jp omi.nagano.jp ookuwa.nagano.jp ooshika.nagano.jp otaki.nagano.jp otari.nagano.jp sakae.nagano.jp sakaki.nagano.jp saku.nagano.jp sakuho.nagano.jp shimosuwa.nagano.jp shinanomachi.nagano.jp shiojiri.nagano.jp suwa.nagano.jp suzaka.nagano.jp takagi.nagano.jp takamori.nagano.jp takayama.nagano.jp tateshina.nagano.jp tatsuno.nagano.jp togakushi.nagano.jp togura.nagano.jp tomi.nagano.jp ueda.nagano.jp wada.nagano.jp yamagata.nagano.jp yamanouchi.nagano.jp yasaka.nagano.jp yasuoka.nagano.jp chijiwa.nagasaki.jp futsu.nagasaki.jp goto.nagasaki.jp hasami.nagasaki.jp hirado.nagasaki.jp iki.nagasaki.jp isahaya.nagasaki.jp kawatana.nagasaki.jp kuchinotsu.nagasaki.jp matsuura.nagasaki.jp nagasaki.nagasaki.jp obama.nagasaki.jp omura.nagasaki.jp oseto.nagasaki.jp saikai.nagasaki.jp sasebo.nagasaki.jp seihi.nagasaki.jp shimabara.nagasaki.jp shinkamigoto.nagasaki.jp togitsu.nagasaki.jp tsushima.nagasaki.jp unzen.nagasaki.jp ando.nara.jp gose.nara.jp heguri.nara.jp higashiyoshino.nara.jp ikaruga.nara.jp ikoma.nara.jp kamikitayama.nara.jp kanmaki.nara.jp kashiba.nara.jp kashihara.nara.jp katsuragi.nara.jp kawai.nara.jp kawakami.nara.jp kawanishi.nara.jp koryo.nara.jp kurotaki.nara.jp mitsue.nara.jp miyake.nara.jp nara.nara.jp nosegawa.nara.jp oji.nara.jp ouda.nara.jp oyodo.nara.jp sakurai.nara.jp sango.nara.jp shimoichi.nara.jp shimokitayama.nara.jp shinjo.nara.jp soni.nara.jp takatori.nara.jp tawaramoto.nara.jp tenkawa.nara.jp tenri.nara.jp uda.nara.jp yamatokoriyama.nara.jp yamatotakada.nara.jp yamazoe.nara.jp yoshino.nara.jp aga.niigata.jp agano.niigata.jp gosen.niigata.jp itoigawa.niigata.jp izumozaki.niigata.jp joetsu.niigata.jp kamo.niigata.jp kariwa.niigata.jp kashiwazaki.niigata.jp minamiuonuma.niigata.jp mitsuke.niigata.jp muika.niigata.jp murakami.niigata.jp myoko.niigata.jp nagaoka.niigata.jp niigata.niigata.jp ojiya.niigata.jp omi.niigata.jp sado.niigata.jp sanjo.niigata.jp seiro.niigata.jp seirou.niigata.jp sekikawa.niigata.jp shibata.niigata.jp tagami.niigata.jp tainai.niigata.jp tochio.niigata.jp tokamachi.niigata.jp tsubame.niigata.jp tsunan.niigata.jp uonuma.niigata.jp yahiko.niigata.jp yoita.niigata.jp yuzawa.niigata.jp beppu.oita.jp bungoono.oita.jp bungotakada.oita.jp hasama.oita.jp hiji.oita.jp himeshima.oita.jp hita.oita.jp kamitsue.oita.jp kokonoe.oita.jp kuju.oita.jp kunisaki.oita.jp kusu.oita.jp oita.oita.jp saiki.oita.jp taketa.oita.jp tsukumi.oita.jp usa.oita.jp usuki.oita.jp yufu.oita.jp akaiwa.okayama.jp asakuchi.okayama.jp bizen.okayama.jp hayashima.okayama.jp ibara.okayama.jp kagamino.okayama.jp kasaoka.okayama.jp kibichuo.okayama.jp kumenan.okayama.jp kurashiki.okayama.jp maniwa.okayama.jp misaki.okayama.jp nagi.okayama.jp niimi.okayama.jp nishiawakura.okayama.jp okayama.okayama.jp satosho.okayama.jp setouchi.okayama.jp shinjo.okayama.jp shoo.okayama.jp soja.okayama.jp takahashi.okayama.jp tamano.okayama.jp tsuyama.okayama.jp wake.okayama.jp yakage.okayama.jp aguni.okinawa.jp ginowan.okinawa.jp ginoza.okinawa.jp gushikami.okinawa.jp haebaru.okinawa.jp higashi.okinawa.jp hirara.okinawa.jp iheya.okinawa.jp ishigaki.okinawa.jp ishikawa.okinawa.jp itoman.okinawa.jp izena.okinawa.jp kadena.okinawa.jp kin.okinawa.jp kitadaito.okinawa.jp kitanakagusuku.okinawa.jp kumejima.okinawa.jp kunigami.okinawa.jp minamidaito.okinawa.jp motobu.okinawa.jp nago.okinawa.jp naha.okinawa.jp nakagusuku.okinawa.jp nakijin.okinawa.jp nanjo.okinawa.jp nishihara.okinawa.jp ogimi.okinawa.jp okinawa.okinawa.jp onna.okinawa.jp shimoji.okinawa.jp taketomi.okinawa.jp tarama.okinawa.jp tokashiki.okinawa.jp tomigusuku.okinawa.jp tonaki.okinawa.jp urasoe.okinawa.jp uruma.okinawa.jp yaese.okinawa.jp yomitan.okinawa.jp yonabaru.okinawa.jp yonaguni.okinawa.jp zamami.okinawa.jp abeno.osaka.jp chihayaakasaka.osaka.jp chuo.osaka.jp daito.osaka.jp fujiidera.osaka.jp habikino.osaka.jp hannan.osaka.jp higashiosaka.osaka.jp higashisumiyoshi.osaka.jp higashiyodogawa.osaka.jp hirakata.osaka.jp ibaraki.osaka.jp ikeda.osaka.jp izumi.osaka.jp izumiotsu.osaka.jp izumisano.osaka.jp kadoma.osaka.jp kaizuka.osaka.jp kanan.osaka.jp kashiwara.osaka.jp katano.osaka.jp kawachinagano.osaka.jp kishiwada.osaka.jp kita.osaka.jp kumatori.osaka.jp matsubara.osaka.jp minato.osaka.jp minoh.osaka.jp misaki.osaka.jp moriguchi.osaka.jp neyagawa.osaka.jp nishi.osaka.jp nose.osaka.jp osakasayama.osaka.jp sakai.osaka.jp sayama.osaka.jp sennan.osaka.jp settsu.osaka.jp shijonawate.osaka.jp shimamoto.osaka.jp suita.osaka.jp tadaoka.osaka.jp taishi.osaka.jp tajiri.osaka.jp takaishi.osaka.jp takatsuki.osaka.jp tondabayashi.osaka.jp toyonaka.osaka.jp toyono.osaka.jp yao.osaka.jp ariake.saga.jp arita.saga.jp fukudomi.saga.jp genkai.saga.jp hamatama.saga.jp hizen.saga.jp imari.saga.jp kamimine.saga.jp kanzaki.saga.jp karatsu.saga.jp kashima.saga.jp kitagata.saga.jp kitahata.saga.jp kiyama.saga.jp kouhoku.saga.jp kyuragi.saga.jp nishiarita.saga.jp ogi.saga.jp omachi.saga.jp ouchi.saga.jp saga.saga.jp shiroishi.saga.jp taku.saga.jp tara.saga.jp tosu.saga.jp yoshinogari.saga.jp arakawa.saitama.jp asaka.saitama.jp chichibu.saitama.jp fujimi.saitama.jp fujimino.saitama.jp fukaya.saitama.jp hanno.saitama.jp hanyu.saitama.jp hasuda.saitama.jp hatogaya.saitama.jp hatoyama.saitama.jp hidaka.saitama.jp higashichichibu.saitama.jp higashimatsuyama.saitama.jp honjo.saitama.jp ina.saitama.jp iruma.saitama.jp iwatsuki.saitama.jp kamiizumi.saitama.jp kamikawa.saitama.jp kamisato.saitama.jp kasukabe.saitama.jp kawagoe.saitama.jp kawaguchi.saitama.jp kawajima.saitama.jp kazo.saitama.jp kitamoto.saitama.jp koshigaya.saitama.jp kounosu.saitama.jp kuki.saitama.jp kumagaya.saitama.jp matsubushi.saitama.jp minano.saitama.jp misato.saitama.jp miyashiro.saitama.jp miyoshi.saitama.jp moroyama.saitama.jp nagatoro.saitama.jp namegawa.saitama.jp niiza.saitama.jp ogano.saitama.jp ogawa.saitama.jp ogose.saitama.jp okegawa.saitama.jp omiya.saitama.jp otaki.saitama.jp ranzan.saitama.jp ryokami.saitama.jp saitama.saitama.jp sakado.saitama.jp satte.saitama.jp sayama.saitama.jp shiki.saitama.jp shiraoka.saitama.jp soka.saitama.jp sugito.saitama.jp toda.saitama.jp tokigawa.saitama.jp tokorozawa.saitama.jp tsurugashima.saitama.jp urawa.saitama.jp warabi.saitama.jp yashio.saitama.jp yokoze.saitama.jp yono.saitama.jp yorii.saitama.jp yoshida.saitama.jp yoshikawa.saitama.jp yoshimi.saitama.jp aisho.shiga.jp gamo.shiga.jp higashiomi.shiga.jp hikone.shiga.jp koka.shiga.jp konan.shiga.jp kosei.shiga.jp koto.shiga.jp kusatsu.shiga.jp maibara.shiga.jp moriyama.shiga.jp nagahama.shiga.jp nishiazai.shiga.jp notogawa.shiga.jp omihachiman.shiga.jp otsu.shiga.jp ritto.shiga.jp ryuoh.shiga.jp takashima.shiga.jp takatsuki.shiga.jp torahime.shiga.jp toyosato.shiga.jp yasu.shiga.jp akagi.shimane.jp ama.shimane.jp gotsu.shimane.jp hamada.shimane.jp higashiizumo.shimane.jp hikawa.shimane.jp hikimi.shimane.jp izumo.shimane.jp kakinoki.shimane.jp masuda.shimane.jp matsue.shimane.jp misato.shimane.jp nishinoshima.shimane.jp ohda.shimane.jp okinoshima.shimane.jp okuizumo.shimane.jp shimane.shimane.jp tamayu.shimane.jp tsuwano.shimane.jp unnan.shimane.jp yakumo.shimane.jp yasugi.shimane.jp yatsuka.shimane.jp arai.shizuoka.jp atami.shizuoka.jp fuji.shizuoka.jp fujieda.shizuoka.jp fujikawa.shizuoka.jp fujinomiya.shizuoka.jp fukuroi.shizuoka.jp gotemba.shizuoka.jp haibara.shizuoka.jp hamamatsu.shizuoka.jp higashiizu.shizuoka.jp ito.shizuoka.jp iwata.shizuoka.jp izu.shizuoka.jp izunokuni.shizuoka.jp kakegawa.shizuoka.jp kannami.shizuoka.jp kawanehon.shizuoka.jp kawazu.shizuoka.jp kikugawa.shizuoka.jp kosai.shizuoka.jp makinohara.shizuoka.jp matsuzaki.shizuoka.jp minamiizu.shizuoka.jp mishima.shizuoka.jp morimachi.shizuoka.jp nishiizu.shizuoka.jp numazu.shizuoka.jp omaezaki.shizuoka.jp shimada.shizuoka.jp shimizu.shizuoka.jp shimoda.shizuoka.jp shizuoka.shizuoka.jp susono.shizuoka.jp yaizu.shizuoka.jp yoshida.shizuoka.jp ashikaga.tochigi.jp bato.tochigi.jp haga.tochigi.jp ichikai.tochigi.jp iwafune.tochigi.jp kaminokawa.tochigi.jp kanuma.tochigi.jp karasuyama.tochigi.jp kuroiso.tochigi.jp mashiko.tochigi.jp mibu.tochigi.jp moka.tochigi.jp motegi.tochigi.jp nasu.tochigi.jp nasushiobara.tochigi.jp nikko.tochigi.jp nishikata.tochigi.jp nogi.tochigi.jp ohira.tochigi.jp ohtawara.tochigi.jp oyama.tochigi.jp sakura.tochigi.jp sano.tochigi.jp shimotsuke.tochigi.jp shioya.tochigi.jp takanezawa.tochigi.jp tochigi.tochigi.jp tsuga.tochigi.jp ujiie.tochigi.jp utsunomiya.tochigi.jp yaita.tochigi.jp aizumi.tokushima.jp anan.tokushima.jp ichiba.tokushima.jp itano.tokushima.jp kainan.tokushima.jp komatsushima.tokushima.jp matsushige.tokushima.jp mima.tokushima.jp minami.tokushima.jp miyoshi.tokushima.jp mugi.tokushima.jp nakagawa.tokushima.jp naruto.tokushima.jp sanagochi.tokushima.jp shishikui.tokushima.jp tokushima.tokushima.jp wajiki.tokushima.jp adachi.tokyo.jp akiruno.tokyo.jp akishima.tokyo.jp aogashima.tokyo.jp arakawa.tokyo.jp bunkyo.tokyo.jp chiyoda.tokyo.jp chofu.tokyo.jp chuo.tokyo.jp edogawa.tokyo.jp fuchu.tokyo.jp fussa.tokyo.jp hachijo.tokyo.jp hachioji.tokyo.jp hamura.tokyo.jp higashikurume.tokyo.jp higashimurayama.tokyo.jp higashiyamato.tokyo.jp hino.tokyo.jp hinode.tokyo.jp hinohara.tokyo.jp inagi.tokyo.jp itabashi.tokyo.jp katsushika.tokyo.jp kita.tokyo.jp kiyose.tokyo.jp kodaira.tokyo.jp koganei.tokyo.jp kokubunji.tokyo.jp komae.tokyo.jp koto.tokyo.jp kouzushima.tokyo.jp kunitachi.tokyo.jp machida.tokyo.jp meguro.tokyo.jp minato.tokyo.jp mitaka.tokyo.jp mizuho.tokyo.jp musashimurayama.tokyo.jp musashino.tokyo.jp nakano.tokyo.jp nerima.tokyo.jp ogasawara.tokyo.jp okutama.tokyo.jp ome.tokyo.jp oshima.tokyo.jp ota.tokyo.jp setagaya.tokyo.jp shibuya.tokyo.jp shinagawa.tokyo.jp shinjuku.tokyo.jp suginami.tokyo.jp sumida.tokyo.jp tachikawa.tokyo.jp taito.tokyo.jp tama.tokyo.jp toshima.tokyo.jp chizu.tottori.jp hino.tottori.jp kawahara.tottori.jp koge.tottori.jp kotoura.tottori.jp misasa.tottori.jp nanbu.tottori.jp nichinan.tottori.jp sakaiminato.tottori.jp tottori.tottori.jp wakasa.tottori.jp yazu.tottori.jp yonago.tottori.jp asahi.toyama.jp fuchu.toyama.jp fukumitsu.toyama.jp funahashi.toyama.jp himi.toyama.jp imizu.toyama.jp inami.toyama.jp johana.toyama.jp kamiichi.toyama.jp kurobe.toyama.jp nakaniikawa.toyama.jp namerikawa.toyama.jp nanto.toyama.jp nyuzen.toyama.jp oyabe.toyama.jp taira.toyama.jp takaoka.toyama.jp tateyama.toyama.jp toga.toyama.jp tonami.toyama.jp toyama.toyama.jp unazuki.toyama.jp uozu.toyama.jp yamada.toyama.jp arida.wakayama.jp aridagawa.wakayama.jp gobo.wakayama.jp hashimoto.wakayama.jp hidaka.wakayama.jp hirogawa.wakayama.jp inami.wakayama.jp iwade.wakayama.jp kainan.wakayama.jp kamitonda.wakayama.jp katsuragi.wakayama.jp kimino.wakayama.jp kinokawa.wakayama.jp kitayama.wakayama.jp koya.wakayama.jp koza.wakayama.jp kozagawa.wakayama.jp kudoyama.wakayama.jp kushimoto.wakayama.jp mihama.wakayama.jp misato.wakayama.jp nachikatsuura.wakayama.jp shingu.wakayama.jp shirahama.wakayama.jp taiji.wakayama.jp tanabe.wakayama.jp wakayama.wakayama.jp yuasa.wakayama.jp yura.wakayama.jp asahi.yamagata.jp funagata.yamagata.jp higashine.yamagata.jp iide.yamagata.jp kahoku.yamagata.jp kaminoyama.yamagata.jp kaneyama.yamagata.jp kawanishi.yamagata.jp mamurogawa.yamagata.jp mikawa.yamagata.jp murayama.yamagata.jp nagai.yamagata.jp nakayama.yamagata.jp nanyo.yamagata.jp nishikawa.yamagata.jp obanazawa.yamagata.jp oe.yamagata.jp oguni.yamagata.jp ohkura.yamagata.jp oishida.yamagata.jp sagae.yamagata.jp sakata.yamagata.jp sakegawa.yamagata.jp shinjo.yamagata.jp shirataka.yamagata.jp shonai.yamagata.jp takahata.yamagata.jp tendo.yamagata.jp tozawa.yamagata.jp tsuruoka.yamagata.jp yamagata.yamagata.jp yamanobe.yamagata.jp yonezawa.yamagata.jp yuza.yamagata.jp abu.yamaguchi.jp hagi.yamaguchi.jp hikari.yamaguchi.jp hofu.yamaguchi.jp iwakuni.yamaguchi.jp kudamatsu.yamaguchi.jp mitou.yamaguchi.jp nagato.yamaguchi.jp oshima.yamaguchi.jp shimonoseki.yamaguchi.jp shunan.yamaguchi.jp tabuse.yamaguchi.jp tokuyama.yamaguchi.jp toyota.yamaguchi.jp ube.yamaguchi.jp yuu.yamaguchi.jp chuo.yamanashi.jp doshi.yamanashi.jp fuefuki.yamanashi.jp fujikawa.yamanashi.jp fujikawaguchiko.yamanashi.jp fujiyoshida.yamanashi.jp hayakawa.yamanashi.jp hokuto.yamanashi.jp ichikawamisato.yamanashi.jp kai.yamanashi.jp kofu.yamanashi.jp koshu.yamanashi.jp kosuge.yamanashi.jp minami-alps.yamanashi.jp minobu.yamanashi.jp nakamichi.yamanashi.jp nanbu.yamanashi.jp narusawa.yamanashi.jp nirasaki.yamanashi.jp nishikatsura.yamanashi.jp oshino.yamanashi.jp otsuki.yamanashi.jp showa.yamanashi.jp tabayama.yamanashi.jp tsuru.yamanashi.jp uenohara.yamanashi.jp yamanakako.yamanashi.jp yamanashi.yamanashi.jp ke ac.ke co.ke go.ke info.ke me.ke mobi.ke ne.ke or.ke sc.ke kg com.kg edu.kg gov.kg mil.kg net.kg org.kg *.kh ki biz.ki com.ki edu.ki gov.ki info.ki net.ki org.ki km ass.km com.km edu.km gov.km mil.km nom.km org.km prd.km tm.km asso.km coop.km gouv.km medecin.km notaires.km pharmaciens.km presse.km veterinaire.km kn edu.kn gov.kn net.kn org.kn kp com.kp edu.kp gov.kp org.kp rep.kp tra.kp kr ac.kr co.kr es.kr go.kr hs.kr kg.kr mil.kr ms.kr ne.kr or.kr pe.kr re.kr sc.kr busan.kr chungbuk.kr chungnam.kr daegu.kr daejeon.kr gangwon.kr gwangju.kr gyeongbuk.kr gyeonggi.kr gyeongnam.kr incheon.kr jeju.kr jeonbuk.kr jeonnam.kr seoul.kr ulsan.kr kw com.kw edu.kw emb.kw gov.kw ind.kw net.kw org.kw ky com.ky edu.ky net.ky org.ky kz com.kz edu.kz gov.kz mil.kz net.kz org.kz la com.la edu.la gov.la info.la int.la net.la org.la per.la lb com.lb edu.lb gov.lb net.lb org.lb lc co.lc com.lc edu.lc gov.lc net.lc org.lc li lk ac.lk assn.lk com.lk edu.lk gov.lk grp.lk hotel.lk int.lk ltd.lk net.lk ngo.lk org.lk sch.lk soc.lk web.lk lr com.lr edu.lr gov.lr net.lr org.lr ls ac.ls biz.ls co.ls edu.ls gov.ls info.ls net.ls org.ls sc.ls lt gov.lt lu lv asn.lv com.lv conf.lv edu.lv gov.lv id.lv mil.lv net.lv org.lv ly com.ly edu.ly gov.ly id.ly med.ly net.ly org.ly plc.ly sch.ly ma ac.ma co.ma gov.ma net.ma org.ma press.ma mc asso.mc tm.mc md me ac.me co.me edu.me gov.me its.me net.me org.me priv.me mg co.mg com.mg edu.mg gov.mg mil.mg nom.mg org.mg prd.mg mh mil mk com.mk edu.mk gov.mk inf.mk name.mk net.mk org.mk ml com.ml edu.ml gouv.ml gov.ml net.ml org.ml presse.ml *.mm mn edu.mn gov.mn org.mn mo com.mo edu.mo gov.mo net.mo org.mo mobi mp mq mr gov.mr ms com.ms edu.ms gov.ms net.ms org.ms mt com.mt edu.mt net.mt org.mt mu ac.mu co.mu com.mu gov.mu net.mu or.mu org.mu museum mv aero.mv biz.mv com.mv coop.mv edu.mv gov.mv info.mv int.mv mil.mv museum.mv name.mv net.mv org.mv pro.mv mw ac.mw biz.mw co.mw com.mw coop.mw edu.mw gov.mw int.mw net.mw org.mw mx com.mx edu.mx gob.mx net.mx org.mx my biz.my com.my edu.my gov.my mil.my name.my net.my org.my mz ac.mz adv.mz co.mz edu.mz gov.mz mil.mz net.mz org.mz na alt.na co.na com.na gov.na net.na org.na name nc asso.nc nom.nc ne net nf arts.nf com.nf firm.nf info.nf net.nf other.nf per.nf rec.nf store.nf web.nf ng com.ng edu.ng gov.ng i.ng mil.ng mobi.ng name.ng net.ng org.ng sch.ng ni ac.ni biz.ni co.ni com.ni edu.ni gob.ni in.ni info.ni int.ni mil.ni net.ni nom.ni org.ni web.ni nl no fhs.no folkebibl.no fylkesbibl.no idrett.no museum.no priv.no vgs.no dep.no herad.no kommune.no mil.no stat.no aa.no ah.no bu.no fm.no hl.no hm.no jan-mayen.no mr.no nl.no nt.no of.no ol.no oslo.no rl.no sf.no st.no svalbard.no tm.no tr.no va.no vf.no gs.aa.no gs.ah.no gs.bu.no gs.fm.no gs.hl.no gs.hm.no gs.jan-mayen.no gs.mr.no gs.nl.no gs.nt.no gs.of.no gs.ol.no gs.oslo.no gs.rl.no gs.sf.no gs.st.no gs.svalbard.no gs.tm.no gs.tr.no gs.va.no gs.vf.no akrehamn.no \u00e5krehamn.no algard.no \u00e5lg\u00e5rd.no arna.no bronnoysund.no br\u00f8nn\u00f8ysund.no brumunddal.no bryne.no drobak.no dr\u00f8bak.no egersund.no fetsund.no floro.no flor\u00f8.no fredrikstad.no hokksund.no honefoss.no h\u00f8nefoss.no jessheim.no jorpeland.no j\u00f8rpeland.no kirkenes.no kopervik.no krokstadelva.no langevag.no langev\u00e5g.no leirvik.no mjondalen.no mj\u00f8ndalen.no mo-i-rana.no mosjoen.no mosj\u00f8en.no nesoddtangen.no orkanger.no osoyro.no os\u00f8yro.no raholt.no r\u00e5holt.no sandnessjoen.no sandnessj\u00f8en.no skedsmokorset.no slattum.no spjelkavik.no stathelle.no stavern.no stjordalshalsen.no stj\u00f8rdalshalsen.no tananger.no tranby.no vossevangen.no aarborte.no aejrie.no afjord.no \u00e5fjord.no agdenes.no nes.akershus.no aknoluokta.no \u00e1k\u014boluokta.no al.no \u00e5l.no alaheadju.no \u00e1laheadju.no alesund.no \u00e5lesund.no alstahaug.no alta.no \u00e1lt\u00e1.no alvdal.no amli.no \u00e5mli.no amot.no \u00e5mot.no andasuolo.no andebu.no andoy.no and\u00f8y.no ardal.no \u00e5rdal.no aremark.no arendal.no \u00e5s.no aseral.no \u00e5seral.no asker.no askim.no askoy.no ask\u00f8y.no askvoll.no asnes.no \u00e5snes.no audnedaln.no aukra.no aure.no aurland.no aurskog-holand.no aurskog-h\u00f8land.no austevoll.no austrheim.no averoy.no aver\u00f8y.no badaddja.no b\u00e5d\u00e5ddj\u00e5.no b\u00e6rum.no bahcavuotna.no b\u00e1hcavuotna.no bahccavuotna.no b\u00e1hccavuotna.no baidar.no b\u00e1id\u00e1r.no bajddar.no b\u00e1jddar.no balat.no b\u00e1l\u00e1t.no balestrand.no ballangen.no balsfjord.no bamble.no bardu.no barum.no batsfjord.no b\u00e5tsfjord.no bearalvahki.no bearalv\u00e1hki.no beardu.no beiarn.no berg.no bergen.no berlevag.no berlev\u00e5g.no bievat.no biev\u00e1t.no bindal.no birkenes.no bjarkoy.no bjark\u00f8y.no bjerkreim.no bjugn.no bodo.no bod\u00f8.no bokn.no bomlo.no b\u00f8mlo.no bremanger.no bronnoy.no br\u00f8nn\u00f8y.no budejju.no nes.buskerud.no bygland.no bykle.no cahcesuolo.no \u010d\u00e1hcesuolo.no davvenjarga.no davvenj\u00e1rga.no davvesiida.no deatnu.no dielddanuorri.no divtasvuodna.no divttasvuotna.no donna.no d\u00f8nna.no dovre.no drammen.no drangedal.no dyroy.no dyr\u00f8y.no eid.no eidfjord.no eidsberg.no eidskog.no eidsvoll.no eigersund.no elverum.no enebakk.no engerdal.no etne.no etnedal.no evenassi.no even\u00e1\u0161\u0161i.no evenes.no evje-og-hornnes.no farsund.no fauske.no fedje.no fet.no finnoy.no finn\u00f8y.no fitjar.no fjaler.no fjell.no fla.no fl\u00e5.no flakstad.no flatanger.no flekkefjord.no flesberg.no flora.no folldal.no forde.no f\u00f8rde.no forsand.no fosnes.no fr\u00e6na.no frana.no frei.no frogn.no froland.no frosta.no froya.no fr\u00f8ya.no fuoisku.no fuossko.no fusa.no fyresdal.no gaivuotna.no g\u00e1ivuotna.no galsa.no g\u00e1ls\u00e1.no gamvik.no gangaviika.no g\u00e1\u014bgaviika.no gaular.no gausdal.no giehtavuoatna.no gildeskal.no gildesk\u00e5l.no giske.no gjemnes.no gjerdrum.no gjerstad.no gjesdal.no gjovik.no gj\u00f8vik.no gloppen.no gol.no gran.no grane.no granvin.no gratangen.no grimstad.no grong.no grue.no gulen.no guovdageaidnu.no ha.no h\u00e5.no habmer.no h\u00e1bmer.no hadsel.no h\u00e6gebostad.no hagebostad.no halden.no halsa.no hamar.no hamaroy.no hammarfeasta.no h\u00e1mm\u00e1rfeasta.no hammerfest.no hapmir.no h\u00e1pmir.no haram.no hareid.no harstad.no hasvik.no hattfjelldal.no haugesund.no os.hedmark.no valer.hedmark.no v\u00e5ler.hedmark.no hemne.no hemnes.no hemsedal.no hitra.no hjartdal.no hjelmeland.no hobol.no hob\u00f8l.no hof.no hol.no hole.no holmestrand.no holtalen.no holt\u00e5len.no os.hordaland.no hornindal.no horten.no hoyanger.no h\u00f8yanger.no hoylandet.no h\u00f8ylandet.no hurdal.no hurum.no hvaler.no hyllestad.no ibestad.no inderoy.no inder\u00f8y.no iveland.no ivgu.no jevnaker.no jolster.no j\u00f8lster.no jondal.no kafjord.no k\u00e5fjord.no karasjohka.no k\u00e1r\u00e1\u0161johka.no karasjok.no karlsoy.no karmoy.no karm\u00f8y.no kautokeino.no klabu.no kl\u00e6bu.no klepp.no kongsberg.no kongsvinger.no kraanghke.no kr\u00e5anghke.no kragero.no krager\u00f8.no kristiansand.no kristiansund.no krodsherad.no kr\u00f8dsherad.no kv\u00e6fjord.no kv\u00e6nangen.no kvafjord.no kvalsund.no kvam.no kvanangen.no kvinesdal.no kvinnherad.no kviteseid.no kvitsoy.no kvits\u00f8y.no laakesvuemie.no l\u00e6rdal.no lahppi.no l\u00e1hppi.no lardal.no larvik.no lavagis.no lavangen.no leangaviika.no lea\u014bgaviika.no lebesby.no leikanger.no leirfjord.no leka.no leksvik.no lenvik.no lerdal.no lesja.no levanger.no lier.no lierne.no lillehammer.no lillesand.no lindas.no lind\u00e5s.no lindesnes.no loabat.no loab\u00e1t.no lodingen.no l\u00f8dingen.no lom.no loppa.no lorenskog.no l\u00f8renskog.no loten.no l\u00f8ten.no lund.no lunner.no luroy.no lur\u00f8y.no luster.no lyngdal.no lyngen.no malatvuopmi.no m\u00e1latvuopmi.no malselv.no m\u00e5lselv.no malvik.no mandal.no marker.no marnardal.no masfjorden.no masoy.no m\u00e5s\u00f8y.no matta-varjjat.no m\u00e1tta-v\u00e1rjjat.no meland.no meldal.no melhus.no meloy.no mel\u00f8y.no meraker.no mer\u00e5ker.no midsund.no midtre-gauldal.no moareke.no mo\u00e5reke.no modalen.no modum.no molde.no heroy.more-og-romsdal.no sande.more-og-romsdal.no her\u00f8y.m\u00f8re-og-romsdal.no sande.m\u00f8re-og-romsdal.no moskenes.no moss.no mosvik.no muosat.no muos\u00e1t.no naamesjevuemie.no n\u00e5\u00e5mesjevuemie.no n\u00e6r\u00f8y.no namdalseid.no namsos.no namsskogan.no nannestad.no naroy.no narviika.no narvik.no naustdal.no navuotna.no n\u00e1vuotna.no nedre-eiker.no nesna.no nesodden.no nesseby.no nesset.no nissedal.no nittedal.no nord-aurdal.no nord-fron.no nord-odal.no norddal.no nordkapp.no bo.nordland.no b\u00f8.nordland.no heroy.nordland.no her\u00f8y.nordland.no nordre-land.no nordreisa.no nore-og-uvdal.no notodden.no notteroy.no n\u00f8tter\u00f8y.no odda.no oksnes.no \u00f8ksnes.no omasvuotna.no oppdal.no oppegard.no oppeg\u00e5rd.no orkdal.no orland.no \u00f8rland.no orskog.no \u00f8rskog.no orsta.no \u00f8rsta.no osen.no osteroy.no oster\u00f8y.no valer.ostfold.no v\u00e5ler.\u00f8stfold.no ostre-toten.no \u00f8stre-toten.no overhalla.no ovre-eiker.no \u00f8vre-eiker.no oyer.no \u00f8yer.no oygarden.no \u00f8ygarden.no oystre-slidre.no \u00f8ystre-slidre.no porsanger.no porsangu.no pors\u00e1\u014bgu.no porsgrunn.no rade.no r\u00e5de.no radoy.no rad\u00f8y.no r\u00e6lingen.no rahkkeravju.no r\u00e1hkker\u00e1vju.no raisa.no r\u00e1isa.no rakkestad.no ralingen.no rana.no randaberg.no rauma.no rendalen.no rennebu.no rennesoy.no rennes\u00f8y.no rindal.no ringebu.no ringerike.no ringsaker.no risor.no ris\u00f8r.no rissa.no roan.no rodoy.no r\u00f8d\u00f8y.no rollag.no romsa.no romskog.no r\u00f8mskog.no roros.no r\u00f8ros.no rost.no r\u00f8st.no royken.no r\u00f8yken.no royrvik.no r\u00f8yrvik.no ruovat.no rygge.no salangen.no salat.no s\u00e1lat.no s\u00e1l\u00e1t.no saltdal.no samnanger.no sandefjord.no sandnes.no sandoy.no sand\u00f8y.no sarpsborg.no sauda.no sauherad.no sel.no selbu.no selje.no seljord.no siellak.no sigdal.no siljan.no sirdal.no skanit.no sk\u00e1nit.no skanland.no sk\u00e5nland.no skaun.no skedsmo.no ski.no skien.no skierva.no skierv\u00e1.no skiptvet.no skjak.no skj\u00e5k.no skjervoy.no skjerv\u00f8y.no skodje.no smola.no sm\u00f8la.no snaase.no sn\u00e5ase.no snasa.no sn\u00e5sa.no snillfjord.no snoasa.no sogndal.no sogne.no s\u00f8gne.no sokndal.no sola.no solund.no somna.no s\u00f8mna.no sondre-land.no s\u00f8ndre-land.no songdalen.no sor-aurdal.no s\u00f8r-aurdal.no sor-fron.no s\u00f8r-fron.no sor-odal.no s\u00f8r-odal.no sor-varanger.no s\u00f8r-varanger.no sorfold.no s\u00f8rfold.no sorreisa.no s\u00f8rreisa.no sortland.no sorum.no s\u00f8rum.no spydeberg.no stange.no stavanger.no steigen.no steinkjer.no stjordal.no stj\u00f8rdal.no stokke.no stor-elvdal.no stord.no stordal.no storfjord.no strand.no stranda.no stryn.no sula.no suldal.no sund.no sunndal.no surnadal.no sveio.no svelvik.no sykkylven.no tana.no bo.telemark.no b\u00f8.telemark.no time.no tingvoll.no tinn.no tjeldsund.no tjome.no tj\u00f8me.no tokke.no tolga.no tonsberg.no t\u00f8nsberg.no torsken.no tr\u00e6na.no trana.no tranoy.no tran\u00f8y.no troandin.no trogstad.no tr\u00f8gstad.no tromsa.no tromso.no troms\u00f8.no trondheim.no trysil.no tvedestrand.no tydal.no tynset.no tysfjord.no tysnes.no tysv\u00e6r.no tysvar.no ullensaker.no ullensvang.no ulvik.no unjarga.no unj\u00e1rga.no utsira.no vaapste.no vadso.no vads\u00f8.no v\u00e6r\u00f8y.no vaga.no v\u00e5g\u00e5.no vagan.no v\u00e5gan.no vagsoy.no v\u00e5gs\u00f8y.no vaksdal.no valle.no vang.no vanylven.no vardo.no vard\u00f8.no varggat.no v\u00e1rgg\u00e1t.no varoy.no vefsn.no vega.no vegarshei.no veg\u00e5rshei.no vennesla.no verdal.no verran.no vestby.no sande.vestfold.no vestnes.no vestre-slidre.no vestre-toten.no vestvagoy.no vestv\u00e5g\u00f8y.no vevelstad.no vik.no vikna.no vindafjord.no voagat.no volda.no voss.no *.np nr biz.nr com.nr edu.nr gov.nr info.nr net.nr org.nr nu nz ac.nz co.nz cri.nz geek.nz gen.nz govt.nz health.nz iwi.nz kiwi.nz maori.nz m\u0101ori.nz mil.nz net.nz org.nz parliament.nz school.nz om co.om com.om edu.om gov.om med.om museum.om net.om org.om pro.om onion org pa abo.pa ac.pa com.pa edu.pa gob.pa ing.pa med.pa net.pa nom.pa org.pa sld.pa pe com.pe edu.pe gob.pe mil.pe net.pe nom.pe org.pe pf com.pf edu.pf org.pf *.pg ph com.ph edu.ph gov.ph i.ph mil.ph net.ph ngo.ph org.ph pk ac.pk biz.pk com.pk edu.pk fam.pk gkp.pk gob.pk gog.pk gok.pk gon.pk gop.pk gos.pk gov.pk net.pk org.pk web.pk pl com.pl net.pl org.pl agro.pl aid.pl atm.pl auto.pl biz.pl edu.pl gmina.pl gsm.pl info.pl mail.pl media.pl miasta.pl mil.pl nieruchomosci.pl nom.pl pc.pl powiat.pl priv.pl realestate.pl rel.pl sex.pl shop.pl sklep.pl sos.pl szkola.pl targi.pl tm.pl tourism.pl travel.pl turystyka.pl gov.pl ap.gov.pl griw.gov.pl ic.gov.pl is.gov.pl kmpsp.gov.pl konsulat.gov.pl kppsp.gov.pl kwp.gov.pl kwpsp.gov.pl mup.gov.pl mw.gov.pl oia.gov.pl oirm.gov.pl oke.gov.pl oow.gov.pl oschr.gov.pl oum.gov.pl pa.gov.pl pinb.gov.pl piw.gov.pl po.gov.pl pr.gov.pl psp.gov.pl psse.gov.pl pup.gov.pl rzgw.gov.pl sa.gov.pl sdn.gov.pl sko.gov.pl so.gov.pl sr.gov.pl starostwo.gov.pl ug.gov.pl ugim.gov.pl um.gov.pl umig.gov.pl upow.gov.pl uppo.gov.pl us.gov.pl uw.gov.pl uzs.gov.pl wif.gov.pl wiih.gov.pl winb.gov.pl wios.gov.pl witd.gov.pl wiw.gov.pl wkz.gov.pl wsa.gov.pl wskr.gov.pl wsse.gov.pl wuoz.gov.pl wzmiuw.gov.pl zp.gov.pl zpisdn.gov.pl augustow.pl babia-gora.pl bedzin.pl beskidy.pl bialowieza.pl bialystok.pl bielawa.pl bieszczady.pl boleslawiec.pl bydgoszcz.pl bytom.pl cieszyn.pl czeladz.pl czest.pl dlugoleka.pl elblag.pl elk.pl glogow.pl gniezno.pl gorlice.pl grajewo.pl ilawa.pl jaworzno.pl jelenia-gora.pl jgora.pl kalisz.pl karpacz.pl kartuzy.pl kaszuby.pl katowice.pl kazimierz-dolny.pl kepno.pl ketrzyn.pl klodzko.pl kobierzyce.pl kolobrzeg.pl konin.pl konskowola.pl kutno.pl lapy.pl lebork.pl legnica.pl lezajsk.pl limanowa.pl lomza.pl lowicz.pl lubin.pl lukow.pl malbork.pl malopolska.pl mazowsze.pl mazury.pl mielec.pl mielno.pl mragowo.pl naklo.pl nowaruda.pl nysa.pl olawa.pl olecko.pl olkusz.pl olsztyn.pl opoczno.pl opole.pl ostroda.pl ostroleka.pl ostrowiec.pl ostrowwlkp.pl pila.pl pisz.pl podhale.pl podlasie.pl polkowice.pl pomorskie.pl pomorze.pl prochowice.pl pruszkow.pl przeworsk.pl pulawy.pl radom.pl rawa-maz.pl rybnik.pl rzeszow.pl sanok.pl sejny.pl skoczow.pl slask.pl slupsk.pl sosnowiec.pl stalowa-wola.pl starachowice.pl stargard.pl suwalki.pl swidnica.pl swiebodzin.pl swinoujscie.pl szczecin.pl szczytno.pl tarnobrzeg.pl tgory.pl turek.pl tychy.pl ustka.pl walbrzych.pl warmia.pl warszawa.pl waw.pl wegrow.pl wielun.pl wlocl.pl wloclawek.pl wodzislaw.pl wolomin.pl wroclaw.pl zachpomor.pl zagan.pl zarow.pl zgora.pl zgorzelec.pl pm pn co.pn edu.pn gov.pn net.pn org.pn post pr biz.pr com.pr edu.pr gov.pr info.pr isla.pr name.pr net.pr org.pr pro.pr ac.pr est.pr prof.pr pro aaa.pro aca.pro acct.pro avocat.pro bar.pro cpa.pro eng.pro jur.pro law.pro med.pro recht.pro ps com.ps edu.ps gov.ps net.ps org.ps plo.ps sec.ps pt com.pt edu.pt gov.pt int.pt net.pt nome.pt org.pt publ.pt pw belau.pw co.pw ed.pw go.pw or.pw py com.py coop.py edu.py gov.py mil.py net.py org.py qa com.qa edu.qa gov.qa mil.qa name.qa net.qa org.qa sch.qa re asso.re com.re ro arts.ro com.ro firm.ro info.ro nom.ro nt.ro org.ro rec.ro store.ro tm.ro www.ro rs ac.rs co.rs edu.rs gov.rs in.rs org.rs ru rw ac.rw co.rw coop.rw gov.rw mil.rw net.rw org.rw sa com.sa edu.sa gov.sa med.sa net.sa org.sa pub.sa sch.sa sb com.sb edu.sb gov.sb net.sb org.sb sc com.sc edu.sc gov.sc net.sc org.sc sd com.sd edu.sd gov.sd info.sd med.sd net.sd org.sd tv.sd se a.se ac.se b.se bd.se brand.se c.se d.se e.se f.se fh.se fhsk.se fhv.se g.se h.se i.se k.se komforb.se kommunalforbund.se komvux.se l.se lanbib.se m.se n.se naturbruksgymn.se o.se org.se p.se parti.se pp.se press.se r.se s.se t.se tm.se u.se w.se x.se y.se z.se sg com.sg edu.sg gov.sg net.sg org.sg sh com.sh gov.sh mil.sh net.sh org.sh si sj sk sl com.sl edu.sl gov.sl net.sl org.sl sm sn art.sn com.sn edu.sn gouv.sn org.sn perso.sn univ.sn so com.so edu.so gov.so me.so net.so org.so sr ss biz.ss co.ss com.ss edu.ss gov.ss me.ss net.ss org.ss sch.ss st co.st com.st consulado.st edu.st embaixada.st mil.st net.st org.st principe.st saotome.st store.st su sv com.sv edu.sv gob.sv org.sv red.sv sx gov.sx sy com.sy edu.sy gov.sy mil.sy net.sy org.sy sz ac.sz co.sz org.sz tc td tel tf tg th ac.th co.th go.th in.th mi.th net.th or.th tj ac.tj biz.tj co.tj com.tj edu.tj go.tj gov.tj int.tj mil.tj name.tj net.tj nic.tj org.tj test.tj web.tj tk tl gov.tl tm co.tm com.tm edu.tm gov.tm mil.tm net.tm nom.tm org.tm tn com.tn ens.tn fin.tn gov.tn ind.tn info.tn intl.tn mincom.tn nat.tn net.tn org.tn perso.tn tourism.tn to com.to edu.to gov.to mil.to net.to org.to tr av.tr bbs.tr bel.tr biz.tr com.tr dr.tr edu.tr gen.tr gov.tr info.tr k12.tr kep.tr mil.tr name.tr net.tr org.tr pol.tr tel.tr tsk.tr tv.tr web.tr nc.tr gov.nc.tr tt biz.tt co.tt com.tt edu.tt gov.tt info.tt mil.tt name.tt net.tt org.tt pro.tt tv tw club.tw com.tw ebiz.tw edu.tw game.tw gov.tw idv.tw mil.tw net.tw org.tw tz ac.tz co.tz go.tz hotel.tz info.tz me.tz mil.tz mobi.tz ne.tz or.tz sc.tz tv.tz ua com.ua edu.ua gov.ua in.ua net.ua org.ua cherkassy.ua cherkasy.ua chernigov.ua chernihiv.ua chernivtsi.ua chernovtsy.ua ck.ua cn.ua cr.ua crimea.ua cv.ua dn.ua dnepropetrovsk.ua dnipropetrovsk.ua donetsk.ua dp.ua if.ua ivano-frankivsk.ua kh.ua kharkiv.ua kharkov.ua kherson.ua khmelnitskiy.ua khmelnytskyi.ua kiev.ua kirovograd.ua km.ua kr.ua kropyvnytskyi.ua krym.ua ks.ua kv.ua kyiv.ua lg.ua lt.ua lugansk.ua luhansk.ua lutsk.ua lv.ua lviv.ua mk.ua mykolaiv.ua nikolaev.ua od.ua odesa.ua odessa.ua pl.ua poltava.ua rivne.ua rovno.ua rv.ua sb.ua sebastopol.ua sevastopol.ua sm.ua sumy.ua te.ua ternopil.ua uz.ua uzhgorod.ua uzhhorod.ua vinnica.ua vinnytsia.ua vn.ua volyn.ua yalta.ua zakarpattia.ua zaporizhzhe.ua zaporizhzhia.ua zhitomir.ua zhytomyr.ua zp.ua zt.ua ug ac.ug co.ug com.ug go.ug ne.ug or.ug org.ug sc.ug uk ac.uk co.uk gov.uk ltd.uk me.uk net.uk nhs.uk org.uk plc.uk police.uk *.sch.uk us dni.us fed.us isa.us kids.us nsn.us ak.us al.us ar.us as.us az.us ca.us co.us ct.us dc.us de.us fl.us ga.us gu.us hi.us ia.us id.us il.us in.us ks.us ky.us la.us ma.us md.us me.us mi.us mn.us mo.us ms.us mt.us nc.us nd.us ne.us nh.us nj.us nm.us nv.us ny.us oh.us ok.us or.us pa.us pr.us ri.us sc.us sd.us tn.us tx.us ut.us va.us vi.us vt.us wa.us wi.us wv.us wy.us k12.ak.us k12.al.us k12.ar.us k12.as.us k12.az.us k12.ca.us k12.co.us k12.ct.us k12.dc.us k12.fl.us k12.ga.us k12.gu.us k12.ia.us k12.id.us k12.il.us k12.in.us k12.ks.us k12.ky.us k12.la.us k12.ma.us k12.md.us k12.me.us k12.mi.us k12.mn.us k12.mo.us k12.ms.us k12.mt.us k12.nc.us k12.ne.us k12.nh.us k12.nj.us k12.nm.us k12.nv.us k12.ny.us k12.oh.us k12.ok.us k12.or.us k12.pa.us k12.pr.us k12.sc.us k12.tn.us k12.tx.us k12.ut.us k12.va.us k12.vi.us k12.vt.us k12.wa.us k12.wi.us cc.ak.us lib.ak.us cc.al.us lib.al.us cc.ar.us lib.ar.us cc.as.us lib.as.us cc.az.us lib.az.us cc.ca.us lib.ca.us cc.co.us lib.co.us cc.ct.us lib.ct.us cc.dc.us lib.dc.us cc.de.us cc.fl.us cc.ga.us cc.gu.us cc.hi.us cc.ia.us cc.id.us cc.il.us cc.in.us cc.ks.us cc.ky.us cc.la.us cc.ma.us cc.md.us cc.me.us cc.mi.us cc.mn.us cc.mo.us cc.ms.us cc.mt.us cc.nc.us cc.nd.us cc.ne.us cc.nh.us cc.nj.us cc.nm.us cc.nv.us cc.ny.us cc.oh.us cc.ok.us cc.or.us cc.pa.us cc.pr.us cc.ri.us cc.sc.us cc.sd.us cc.tn.us cc.tx.us cc.ut.us cc.va.us cc.vi.us cc.vt.us cc.wa.us cc.wi.us cc.wv.us cc.wy.us k12.wy.us lib.fl.us lib.ga.us lib.gu.us lib.hi.us lib.ia.us lib.id.us lib.il.us lib.in.us lib.ks.us lib.ky.us lib.la.us lib.ma.us lib.md.us lib.me.us lib.mi.us lib.mn.us lib.mo.us lib.ms.us lib.mt.us lib.nc.us lib.nd.us lib.ne.us lib.nh.us lib.nj.us lib.nm.us lib.nv.us lib.ny.us lib.oh.us lib.ok.us lib.or.us lib.pa.us lib.pr.us lib.ri.us lib.sc.us lib.sd.us lib.tn.us lib.tx.us lib.ut.us lib.va.us lib.vi.us lib.vt.us lib.wa.us lib.wi.us lib.wy.us chtr.k12.ma.us paroch.k12.ma.us pvt.k12.ma.us ann-arbor.mi.us cog.mi.us dst.mi.us eaton.mi.us gen.mi.us mus.mi.us tec.mi.us washtenaw.mi.us uy com.uy edu.uy gub.uy mil.uy net.uy org.uy uz co.uz com.uz net.uz org.uz va vc com.vc edu.vc gov.vc mil.vc net.vc org.vc ve arts.ve bib.ve co.ve com.ve e12.ve edu.ve firm.ve gob.ve gov.ve info.ve int.ve mil.ve net.ve nom.ve org.ve rar.ve rec.ve store.ve tec.ve web.ve vg vi co.vi com.vi k12.vi net.vi org.vi vn ac.vn ai.vn biz.vn com.vn edu.vn gov.vn health.vn id.vn info.vn int.vn io.vn name.vn net.vn org.vn pro.vn angiang.vn bacgiang.vn backan.vn baclieu.vn bacninh.vn baria-vungtau.vn bentre.vn binhdinh.vn binhduong.vn binhphuoc.vn binhthuan.vn camau.vn cantho.vn caobang.vn daklak.vn daknong.vn danang.vn dienbien.vn dongnai.vn dongthap.vn gialai.vn hagiang.vn haiduong.vn haiphong.vn hanam.vn hanoi.vn hatinh.vn haugiang.vn hoabinh.vn hungyen.vn khanhhoa.vn kiengiang.vn kontum.vn laichau.vn lamdong.vn langson.vn laocai.vn longan.vn namdinh.vn nghean.vn ninhbinh.vn ninhthuan.vn phutho.vn phuyen.vn quangbinh.vn quangnam.vn quangngai.vn quangninh.vn quangtri.vn soctrang.vn sonla.vn tayninh.vn thaibinh.vn thainguyen.vn thanhhoa.vn thanhphohochiminh.vn thuathienhue.vn tiengiang.vn travinh.vn tuyenquang.vn vinhlong.vn vinhphuc.vn yenbai.vn vu com.vu edu.vu net.vu org.vu wf ws com.ws edu.ws gov.ws net.ws org.ws yt \u0627\u0645\u0627\u0631\u0627\u062a \u0570\u0561\u0575 \u09ac\u09be\u0982\u09b2\u09be \u0431\u0433 \u0627\u0644\u0628\u062d\u0631\u064a\u0646 \u0431\u0435\u043b \u4e2d\u56fd \u4e2d\u570b \u0627\u0644\u062c\u0632\u0627\u0626\u0631 \u0645\u0635\u0631 \u0435\u044e \u03b5\u03c5 \u0645\u0648\u0631\u064a\u062a\u0627\u0646\u064a\u0627 \u10d2\u10d4 \u03b5\u03bb \u9999\u6e2f \u500b\u4eba.\u9999\u6e2f \u516c\u53f8.\u9999\u6e2f \u653f\u5e9c.\u9999\u6e2f \u6559\u80b2.\u9999\u6e2f \u7d44\u7e54.\u9999\u6e2f \u7db2\u7d61.\u9999\u6e2f \u0cad\u0cbe\u0cb0\u0ca4 \u0b2d\u0b3e\u0b30\u0b24 \u09ad\u09be\u09f0\u09a4 \u092d\u093e\u0930\u0924\u092e\u094d \u092d\u093e\u0930\u094b\u0924 \u0680\u0627\u0631\u062a \u0d2d\u0d3e\u0d30\u0d24\u0d02 \u092d\u093e\u0930\u0924 \u0628\u0627\u0631\u062a \u0628\u06be\u0627\u0631\u062a \u0c2d\u0c3e\u0c30\u0c24\u0c4d \u0aad\u0abe\u0ab0\u0aa4 \u0a2d\u0a3e\u0a30\u0a24 \u09ad\u09be\u09b0\u09a4 \u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf\u0bbe \u0627\u06cc\u0631\u0627\u0646 \u0627\u064a\u0631\u0627\u0646 \u0639\u0631\u0627\u0642 \u0627\u0644\u0627\u0631\u062f\u0646 \ud55c\uad6d \u049b\u0430\u0437 \u0ea5\u0eb2\u0ea7 \u0dbd\u0d82\u0d9a\u0dcf \u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8 \u0627\u0644\u0645\u063a\u0631\u0628 \u043c\u043a\u0434 \u043c\u043e\u043d \u6fb3\u9580 \u6fb3\u95e8 \u0645\u0644\u064a\u0633\u064a\u0627 \u0639\u0645\u0627\u0646 \u067e\u0627\u06a9\u0633\u062a\u0627\u0646 \u067e\u0627\u0643\u0633\u062a\u0627\u0646 \u0641\u0644\u0633\u0637\u064a\u0646 \u0441\u0440\u0431 \u0430\u043a.\u0441\u0440\u0431 \u043e\u0431\u0440.\u0441\u0440\u0431 \u043e\u0434.\u0441\u0440\u0431 \u043e\u0440\u0433.\u0441\u0440\u0431 \u043f\u0440.\u0441\u0440\u0431 \u0443\u043f\u0440.\u0441\u0440\u0431 \u0440\u0444 \u0642\u0637\u0631 \u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629 \u0627\u0644\u0633\u0639\u0648\u062f\u06cc\u0629 \u0627\u0644\u0633\u0639\u0648\u062f\u06cc\u06c3 \u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0647 \u0633\u0648\u062f\u0627\u0646 \u65b0\u52a0\u5761 \u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0baa\u0bcd\u0baa\u0bc2\u0bb0\u0bcd \u0633\u0648\u0631\u064a\u0629 \u0633\u0648\u0631\u064a\u0627 \u0e44\u0e17\u0e22 \u0e17\u0e2b\u0e32\u0e23.\u0e44\u0e17\u0e22 \u0e18\u0e38\u0e23\u0e01\u0e34\u0e08.\u0e44\u0e17\u0e22 \u0e40\u0e19\u0e47\u0e15.\u0e44\u0e17\u0e22 \u0e23\u0e31\u0e10\u0e1a\u0e32\u0e25.\u0e44\u0e17\u0e22 \u0e28\u0e36\u0e01\u0e29\u0e32.\u0e44\u0e17\u0e22 \u0e2d\u0e07\u0e04\u0e4c\u0e01\u0e23.\u0e44\u0e17\u0e22 \u062a\u0648\u0646\u0633 \u53f0\u7063 \u53f0\u6e7e \u81fa\u7063 \u0443\u043a\u0440 \u0627\u0644\u064a\u0645\u0646 xxx ye com.ye edu.ye gov.ye mil.ye net.ye org.ye ac.za agric.za alt.za co.za edu.za gov.za grondar.za law.za mil.za net.za ngo.za nic.za nis.za nom.za org.za school.za tm.za web.za zm ac.zm biz.zm co.zm com.zm edu.zm gov.zm info.zm mil.zm net.zm org.zm sch.zm zw ac.zw co.zw gov.zw mil.zw org.zw aaa aarp abb abbott abbvie abc able abogado abudhabi academy accenture accountant accountants aco actor ads adult aeg aetna afl africa agakhan agency aig airbus airforce airtel akdn alibaba alipay allfinanz allstate ally alsace alstom amazon americanexpress americanfamily amex amfam amica amsterdam analytics android anquan anz aol apartments app apple aquarelle arab aramco archi army art arte asda associates athleta attorney auction audi audible audio auspost author auto autos aws axa azure baby baidu banamex band bank bar barcelona barclaycard barclays barefoot bargains baseball basketball bauhaus bayern bbc bbt bbva bcg bcn beats beauty beer bentley berlin best bestbuy bet bharti bible bid bike bing bingo bio black blackfriday blockbuster blog bloomberg blue bms bmw bnpparibas boats boehringer bofa bom bond boo book booking bosch bostik boston bot boutique box bradesco bridgestone broadway broker brother brussels build builders business buy buzz bzh cab cafe cal call calvinklein cam camera camp canon capetown capital capitalone car caravan cards care career careers cars casa case cash casino catering catholic cba cbn cbre center ceo cern cfa cfd chanel channel charity chase chat cheap chintai christmas chrome church cipriani circle cisco citadel citi citic city claims cleaning click clinic clinique clothing cloud club clubmed coach codes coffee college cologne commbank community company compare computer comsec condos construction consulting contact contractors cooking cool corsica country coupon coupons courses cpa credit creditcard creditunion cricket crown crs cruise cruises cuisinella cymru cyou dad dance data date dating datsun day dclk dds deal dealer deals degree delivery dell deloitte delta democrat dental dentist desi design dev dhl diamonds diet digital direct directory discount discover dish diy dnp docs doctor dog domains dot download drive dtv dubai dunlop dupont durban dvag dvr earth eat eco edeka education email emerck energy engineer engineering enterprises epson equipment ericsson erni esq estate eurovision eus events exchange expert exposed express extraspace fage fail fairwinds faith family fan fans farm farmers fashion fast fedex feedback ferrari ferrero fidelity fido film final finance financial fire firestone firmdale fish fishing fit fitness flickr flights flir florist flowers fly foo food football ford forex forsale forum foundation fox free fresenius frl frogans frontier ftr fujitsu fun fund furniture futbol fyi gal gallery gallo gallup game games gap garden gay gbiz gdn gea gent genting george ggee gift gifts gives giving glass gle global globo gmail gmbh gmo gmx godaddy gold goldpoint golf goo goodyear goog google gop got grainger graphics gratis green gripe grocery group gucci guge guide guitars guru hair hamburg hangout haus hbo hdfc hdfcbank health healthcare help helsinki here hermes hiphop hisamitsu hitachi hiv hkt hockey holdings holiday homedepot homegoods homes homesense honda horse hospital host hosting hot hotels hotmail house how hsbc hughes hyatt hyundai ibm icbc ice icu ieee ifm ikano imamat imdb immo immobilien inc industries infiniti ing ink institute insurance insure international intuit investments ipiranga irish ismaili ist istanbul itau itv jaguar java jcb jeep jetzt jewelry jio jll jmp jnj joburg jot joy jpmorgan jprs juegos juniper kaufen kddi kerryhotels kerrylogistics kerryproperties kfh kia kids kim kindle kitchen kiwi koeln komatsu kosher kpmg kpn krd kred kuokgroup kyoto lacaixa lamborghini lamer lancaster land landrover lanxess lasalle lat latino latrobe law lawyer lds lease leclerc lefrak legal lego lexus lgbt lidl life lifeinsurance lifestyle lighting like lilly limited limo lincoln link lipsy live living llc llp loan loans locker locus lol london lotte lotto love lpl lplfinancial ltd ltda lundbeck luxe luxury madrid maif maison makeup man management mango map market marketing markets marriott marshalls mattel mba mckinsey med media meet melbourne meme memorial men menu merck merckmsd miami microsoft mini mint mit mitsubishi mlb mls mma mobile moda moe moi mom monash money monster mormon mortgage moscow moto motorcycles mov movie msd mtn mtr music nab nagoya navy nba nec netbank netflix network neustar new news next nextdirect nexus nfl ngo nhk nico nike nikon ninja nissan nissay nokia norton now nowruz nowtv nra nrw ntt nyc obi observer office okinawa olayan olayangroup ollo omega one ong onl online ooo open oracle orange organic origins osaka otsuka ott ovh page panasonic paris pars partners parts party pay pccw pet pfizer pharmacy phd philips phone photo photography photos physio pics pictet pictures pid pin ping pink pioneer pizza place play playstation plumbing plus pnc pohl poker politie porn pramerica praxi press prime prod productions prof progressive promo properties property protection pru prudential pub pwc qpon quebec quest racing radio read realestate realtor realty recipes red redstone redumbrella rehab reise reisen reit reliance ren rent rentals repair report republican rest restaurant review reviews rexroth rich richardli ricoh ril rio rip rocks rodeo rogers room rsvp rugby ruhr run rwe ryukyu saarland safe safety sakura sale salon samsclub samsung sandvik sandvikcoromant sanofi sap sarl sas save saxo sbi sbs scb schaeffler schmidt scholarships school schule schwarz science scot search seat secure security seek select sener services seven sew sex sexy sfr shangrila sharp shell shia shiksha shoes shop shopping shouji show silk sina singles site ski skin sky skype sling smart smile sncf soccer social softbank software sohu solar solutions song sony soy spa space sport spot srl stada staples star statebank statefarm stc stcgroup stockholm storage store stream studio study style sucks supplies supply support surf surgery suzuki swatch swiss sydney systems tab taipei talk taobao target tatamotors tatar tattoo tax taxi tci tdk team tech technology temasek tennis teva thd theater theatre tiaa tickets tienda tips tires tirol tjmaxx tjx tkmaxx tmall today tokyo tools top toray toshiba total tours town toyota toys trade trading training travel travelers travelersinsurance trust trv tube tui tunes tushu tvs ubank ubs unicom university uno uol ups vacations vana vanguard vegas ventures verisign versicherung vet viajes video vig viking villas vin vip virgin visa vision viva vivo vlaanderen vodka volvo vote voting voto voyage wales walmart walter wang wanggou watch watches weather weatherchannel webcam weber website wed wedding weibo weir whoswho wien wiki williamhill win windows wine winners wme wolterskluwer woodside work works world wow wtc wtf xbox xerox xihuan xin \u0915\u0949\u092e \u30bb\u30fc\u30eb \u4f5b\u5c71 \u6148\u5584 \u96c6\u56e2 \u5728\u7ebf \u70b9\u770b \u0e04\u0e2d\u0e21 \u516b\u5366 \u0645\u0648\u0642\u0639 \u516c\u76ca \u516c\u53f8 \u9999\u683c\u91cc\u62c9 \u7f51\u7ad9 \u79fb\u52a8 \u6211\u7231\u4f60 \u043c\u043e\u0441\u043a\u0432\u0430 \u043a\u0430\u0442\u043e\u043b\u0438\u043a \u043e\u043d\u043b\u0430\u0439\u043d \u0441\u0430\u0439\u0442 \u8054\u901a \u05e7\u05d5\u05dd \u65f6\u5c1a \u5fae\u535a \u6de1\u9a6c\u9521 \u30d5\u30a1\u30c3\u30b7\u30e7\u30f3 \u043e\u0440\u0433 \u0928\u0947\u091f \u30b9\u30c8\u30a2 \u30a2\u30de\u30be\u30f3 \uc0bc\uc131 \u5546\u6807 \u5546\u5e97 \u5546\u57ce \u0434\u0435\u0442\u0438 \u30dd\u30a4\u30f3\u30c8 \u65b0\u95fb \u5bb6\u96fb \u0643\u0648\u0645 \u4e2d\u6587\u7f51 \u4e2d\u4fe1 \u5a31\u4e50 \u8c37\u6b4c \u96fb\u8a0a\u76c8\u79d1 \u8d2d\u7269 \u30af\u30e9\u30a6\u30c9 \u901a\u8ca9 \u7f51\u5e97 \u0938\u0902\u0917\u0920\u0928 \u9910\u5385 \u7f51\u7edc \u043a\u043e\u043c \u4e9a\u9a6c\u900a \u98df\u54c1 \u98de\u5229\u6d66 \u624b\u673a \u0627\u0631\u0627\u0645\u0643\u0648 \u0627\u0644\u0639\u0644\u064a\u0627\u0646 \u0628\u0627\u0632\u0627\u0631 \u0627\u0628\u0648\u0638\u0628\u064a \u0643\u0627\u062b\u0648\u0644\u064a\u0643 \u0647\u0645\u0631\u0627\u0647 \ub2f7\ucef4 \u653f\u5e9c \u0634\u0628\u0643\u0629 \u0628\u064a\u062a\u0643 \u0639\u0631\u0628 \u673a\u6784 \u7ec4\u7ec7\u673a\u6784 \u5065\u5eb7 \u62db\u8058 \u0440\u0443\u0441 \u5927\u62ff \u307f\u3093\u306a \u30b0\u30fc\u30b0\u30eb \u4e16\u754c \u66f8\u7c4d \u7f51\u5740 \ub2f7\ub137 \u30b3\u30e0 \u5929\u4e3b\u6559 \u6e38\u620f verm\u00f6gensberater verm\u00f6gensberatung \u4f01\u4e1a \u4fe1\u606f \u5609\u91cc\u5927\u9152\u5e97 \u5609\u91cc \u5e7f\u4e1c \u653f\u52a1 xyz yachts yahoo yamaxun yandex yodobashi yoga yokohama you youtube yun zappos zara zero zip zone zuerich co.krd edu.krd art.pl gliwice.pl krakow.pl poznan.pl wroc.pl zakopane.pl lib.de.us 12chars.dev 12chars.it 12chars.pro cc.ua inf.ua ltd.ua 611.to a2hosted.com cpserver.com aaa.vodka *.on-acorn.io activetrail.biz adaptable.app adobeaemcloud.com *.dev.adobeaemcloud.com aem.live hlx.live adobeaemcloud.net aem.page hlx.page hlx3.page adobeio-static.net adobeioruntime.net africa.com beep.pl airkitapps.com airkitapps-au.com airkitapps.eu aivencloud.com akadns.net akamai.net akamai-staging.net akamaiedge.net akamaiedge-staging.net akamaihd.net akamaihd-staging.net akamaiorigin.net akamaiorigin-staging.net akamaized.net akamaized-staging.net edgekey.net edgekey-staging.net edgesuite.net edgesuite-staging.net barsy.ca *.compute.estate *.alces.network kasserver.com altervista.org alwaysdata.net myamaze.net execute-api.cn-north-1.amazonaws.com.cn execute-api.cn-northwest-1.amazonaws.com.cn execute-api.af-south-1.amazonaws.com execute-api.ap-east-1.amazonaws.com execute-api.ap-northeast-1.amazonaws.com execute-api.ap-northeast-2.amazonaws.com execute-api.ap-northeast-3.amazonaws.com execute-api.ap-south-1.amazonaws.com execute-api.ap-south-2.amazonaws.com execute-api.ap-southeast-1.amazonaws.com execute-api.ap-southeast-2.amazonaws.com execute-api.ap-southeast-3.amazonaws.com execute-api.ap-southeast-4.amazonaws.com execute-api.ap-southeast-5.amazonaws.com execute-api.ca-central-1.amazonaws.com execute-api.ca-west-1.amazonaws.com execute-api.eu-central-1.amazonaws.com execute-api.eu-central-2.amazonaws.com execute-api.eu-north-1.amazonaws.com execute-api.eu-south-1.amazonaws.com execute-api.eu-south-2.amazonaws.com execute-api.eu-west-1.amazonaws.com execute-api.eu-west-2.amazonaws.com execute-api.eu-west-3.amazonaws.com execute-api.il-central-1.amazonaws.com execute-api.me-central-1.amazonaws.com execute-api.me-south-1.amazonaws.com execute-api.sa-east-1.amazonaws.com execute-api.us-east-1.amazonaws.com execute-api.us-east-2.amazonaws.com execute-api.us-gov-east-1.amazonaws.com execute-api.us-gov-west-1.amazonaws.com execute-api.us-west-1.amazonaws.com execute-api.us-west-2.amazonaws.com cloudfront.net auth.af-south-1.amazoncognito.com auth.ap-east-1.amazoncognito.com auth.ap-northeast-1.amazoncognito.com auth.ap-northeast-2.amazoncognito.com auth.ap-northeast-3.amazoncognito.com auth.ap-south-1.amazoncognito.com auth.ap-south-2.amazoncognito.com auth.ap-southeast-1.amazoncognito.com auth.ap-southeast-2.amazoncognito.com auth.ap-southeast-3.amazoncognito.com auth.ap-southeast-4.amazoncognito.com auth.ca-central-1.amazoncognito.com auth.ca-west-1.amazoncognito.com auth.eu-central-1.amazoncognito.com auth.eu-central-2.amazoncognito.com auth.eu-north-1.amazoncognito.com auth.eu-south-1.amazoncognito.com auth.eu-south-2.amazoncognito.com auth.eu-west-1.amazoncognito.com auth.eu-west-2.amazoncognito.com auth.eu-west-3.amazoncognito.com auth.il-central-1.amazoncognito.com auth.me-central-1.amazoncognito.com auth.me-south-1.amazoncognito.com auth.sa-east-1.amazoncognito.com auth.us-east-1.amazoncognito.com auth-fips.us-east-1.amazoncognito.com auth.us-east-2.amazoncognito.com auth-fips.us-east-2.amazoncognito.com auth-fips.us-gov-west-1.amazoncognito.com auth.us-west-1.amazoncognito.com auth-fips.us-west-1.amazoncognito.com auth.us-west-2.amazoncognito.com auth-fips.us-west-2.amazoncognito.com *.compute.amazonaws.com.cn *.compute.amazonaws.com *.compute-1.amazonaws.com us-east-1.amazonaws.com emrappui-prod.cn-north-1.amazonaws.com.cn emrnotebooks-prod.cn-north-1.amazonaws.com.cn emrstudio-prod.cn-north-1.amazonaws.com.cn emrappui-prod.cn-northwest-1.amazonaws.com.cn emrnotebooks-prod.cn-northwest-1.amazonaws.com.cn emrstudio-prod.cn-northwest-1.amazonaws.com.cn emrappui-prod.af-south-1.amazonaws.com emrnotebooks-prod.af-south-1.amazonaws.com emrstudio-prod.af-south-1.amazonaws.com emrappui-prod.ap-east-1.amazonaws.com emrnotebooks-prod.ap-east-1.amazonaws.com emrstudio-prod.ap-east-1.amazonaws.com emrappui-prod.ap-northeast-1.amazonaws.com emrnotebooks-prod.ap-northeast-1.amazonaws.com emrstudio-prod.ap-northeast-1.amazonaws.com emrappui-prod.ap-northeast-2.amazonaws.com emrnotebooks-prod.ap-northeast-2.amazonaws.com emrstudio-prod.ap-northeast-2.amazonaws.com emrappui-prod.ap-northeast-3.amazonaws.com emrnotebooks-prod.ap-northeast-3.amazonaws.com emrstudio-prod.ap-northeast-3.amazonaws.com emrappui-prod.ap-south-1.amazonaws.com emrnotebooks-prod.ap-south-1.amazonaws.com emrstudio-prod.ap-south-1.amazonaws.com emrappui-prod.ap-south-2.amazonaws.com emrnotebooks-prod.ap-south-2.amazonaws.com emrstudio-prod.ap-south-2.amazonaws.com emrappui-prod.ap-southeast-1.amazonaws.com emrnotebooks-prod.ap-southeast-1.amazonaws.com emrstudio-prod.ap-southeast-1.amazonaws.com emrappui-prod.ap-southeast-2.amazonaws.com emrnotebooks-prod.ap-southeast-2.amazonaws.com emrstudio-prod.ap-southeast-2.amazonaws.com emrappui-prod.ap-southeast-3.amazonaws.com emrnotebooks-prod.ap-southeast-3.amazonaws.com emrstudio-prod.ap-southeast-3.amazonaws.com emrappui-prod.ap-southeast-4.amazonaws.com emrnotebooks-prod.ap-southeast-4.amazonaws.com emrstudio-prod.ap-southeast-4.amazonaws.com emrappui-prod.ca-central-1.amazonaws.com emrnotebooks-prod.ca-central-1.amazonaws.com emrstudio-prod.ca-central-1.amazonaws.com emrappui-prod.ca-west-1.amazonaws.com emrnotebooks-prod.ca-west-1.amazonaws.com emrstudio-prod.ca-west-1.amazonaws.com emrappui-prod.eu-central-1.amazonaws.com emrnotebooks-prod.eu-central-1.amazonaws.com emrstudio-prod.eu-central-1.amazonaws.com emrappui-prod.eu-central-2.amazonaws.com emrnotebooks-prod.eu-central-2.amazonaws.com emrstudio-prod.eu-central-2.amazonaws.com emrappui-prod.eu-north-1.amazonaws.com emrnotebooks-prod.eu-north-1.amazonaws.com emrstudio-prod.eu-north-1.amazonaws.com emrappui-prod.eu-south-1.amazonaws.com emrnotebooks-prod.eu-south-1.amazonaws.com emrstudio-prod.eu-south-1.amazonaws.com emrappui-prod.eu-south-2.amazonaws.com emrnotebooks-prod.eu-south-2.amazonaws.com emrstudio-prod.eu-south-2.amazonaws.com emrappui-prod.eu-west-1.amazonaws.com emrnotebooks-prod.eu-west-1.amazonaws.com emrstudio-prod.eu-west-1.amazonaws.com emrappui-prod.eu-west-2.amazonaws.com emrnotebooks-prod.eu-west-2.amazonaws.com emrstudio-prod.eu-west-2.amazonaws.com emrappui-prod.eu-west-3.amazonaws.com emrnotebooks-prod.eu-west-3.amazonaws.com emrstudio-prod.eu-west-3.amazonaws.com emrappui-prod.il-central-1.amazonaws.com emrnotebooks-prod.il-central-1.amazonaws.com emrstudio-prod.il-central-1.amazonaws.com emrappui-prod.me-central-1.amazonaws.com emrnotebooks-prod.me-central-1.amazonaws.com emrstudio-prod.me-central-1.amazonaws.com emrappui-prod.me-south-1.amazonaws.com emrnotebooks-prod.me-south-1.amazonaws.com emrstudio-prod.me-south-1.amazonaws.com emrappui-prod.sa-east-1.amazonaws.com emrnotebooks-prod.sa-east-1.amazonaws.com emrstudio-prod.sa-east-1.amazonaws.com emrappui-prod.us-east-1.amazonaws.com emrnotebooks-prod.us-east-1.amazonaws.com emrstudio-prod.us-east-1.amazonaws.com emrappui-prod.us-east-2.amazonaws.com emrnotebooks-prod.us-east-2.amazonaws.com emrstudio-prod.us-east-2.amazonaws.com emrappui-prod.us-gov-east-1.amazonaws.com emrnotebooks-prod.us-gov-east-1.amazonaws.com emrstudio-prod.us-gov-east-1.amazonaws.com emrappui-prod.us-gov-west-1.amazonaws.com emrnotebooks-prod.us-gov-west-1.amazonaws.com emrstudio-prod.us-gov-west-1.amazonaws.com emrappui-prod.us-west-1.amazonaws.com emrnotebooks-prod.us-west-1.amazonaws.com emrstudio-prod.us-west-1.amazonaws.com emrappui-prod.us-west-2.amazonaws.com emrnotebooks-prod.us-west-2.amazonaws.com emrstudio-prod.us-west-2.amazonaws.com *.cn-north-1.airflow.amazonaws.com.cn *.cn-northwest-1.airflow.amazonaws.com.cn *.af-south-1.airflow.amazonaws.com *.ap-east-1.airflow.amazonaws.com *.ap-northeast-1.airflow.amazonaws.com *.ap-northeast-2.airflow.amazonaws.com *.ap-northeast-3.airflow.amazonaws.com *.ap-south-1.airflow.amazonaws.com *.ap-south-2.airflow.amazonaws.com *.ap-southeast-1.airflow.amazonaws.com *.ap-southeast-2.airflow.amazonaws.com *.ap-southeast-3.airflow.amazonaws.com *.ap-southeast-4.airflow.amazonaws.com *.ca-central-1.airflow.amazonaws.com *.ca-west-1.airflow.amazonaws.com *.eu-central-1.airflow.amazonaws.com *.eu-central-2.airflow.amazonaws.com *.eu-north-1.airflow.amazonaws.com *.eu-south-1.airflow.amazonaws.com *.eu-south-2.airflow.amazonaws.com *.eu-west-1.airflow.amazonaws.com *.eu-west-2.airflow.amazonaws.com *.eu-west-3.airflow.amazonaws.com *.il-central-1.airflow.amazonaws.com *.me-central-1.airflow.amazonaws.com *.me-south-1.airflow.amazonaws.com *.sa-east-1.airflow.amazonaws.com *.us-east-1.airflow.amazonaws.com *.us-east-2.airflow.amazonaws.com *.us-west-1.airflow.amazonaws.com *.us-west-2.airflow.amazonaws.com s3.dualstack.cn-north-1.amazonaws.com.cn s3-accesspoint.dualstack.cn-north-1.amazonaws.com.cn s3-website.dualstack.cn-north-1.amazonaws.com.cn s3.cn-north-1.amazonaws.com.cn s3-accesspoint.cn-north-1.amazonaws.com.cn s3-deprecated.cn-north-1.amazonaws.com.cn s3-object-lambda.cn-north-1.amazonaws.com.cn s3-website.cn-north-1.amazonaws.com.cn s3.dualstack.cn-northwest-1.amazonaws.com.cn s3-accesspoint.dualstack.cn-northwest-1.amazonaws.com.cn s3.cn-northwest-1.amazonaws.com.cn s3-accesspoint.cn-northwest-1.amazonaws.com.cn s3-object-lambda.cn-northwest-1.amazonaws.com.cn s3-website.cn-northwest-1.amazonaws.com.cn s3.dualstack.af-south-1.amazonaws.com s3-accesspoint.dualstack.af-south-1.amazonaws.com s3-website.dualstack.af-south-1.amazonaws.com s3.af-south-1.amazonaws.com s3-accesspoint.af-south-1.amazonaws.com s3-object-lambda.af-south-1.amazonaws.com s3-website.af-south-1.amazonaws.com s3.dualstack.ap-east-1.amazonaws.com s3-accesspoint.dualstack.ap-east-1.amazonaws.com s3.ap-east-1.amazonaws.com s3-accesspoint.ap-east-1.amazonaws.com s3-object-lambda.ap-east-1.amazonaws.com s3-website.ap-east-1.amazonaws.com s3.dualstack.ap-northeast-1.amazonaws.com s3-accesspoint.dualstack.ap-northeast-1.amazonaws.com s3-website.dualstack.ap-northeast-1.amazonaws.com s3.ap-northeast-1.amazonaws.com s3-accesspoint.ap-northeast-1.amazonaws.com s3-object-lambda.ap-northeast-1.amazonaws.com s3-website.ap-northeast-1.amazonaws.com s3.dualstack.ap-northeast-2.amazonaws.com s3-accesspoint.dualstack.ap-northeast-2.amazonaws.com s3-website.dualstack.ap-northeast-2.amazonaws.com s3.ap-northeast-2.amazonaws.com s3-accesspoint.ap-northeast-2.amazonaws.com s3-object-lambda.ap-northeast-2.amazonaws.com s3-website.ap-northeast-2.amazonaws.com s3.dualstack.ap-northeast-3.amazonaws.com s3-accesspoint.dualstack.ap-northeast-3.amazonaws.com s3-website.dualstack.ap-northeast-3.amazonaws.com s3.ap-northeast-3.amazonaws.com s3-accesspoint.ap-northeast-3.amazonaws.com s3-object-lambda.ap-northeast-3.amazonaws.com s3-website.ap-northeast-3.amazonaws.com s3.dualstack.ap-south-1.amazonaws.com s3-accesspoint.dualstack.ap-south-1.amazonaws.com s3-website.dualstack.ap-south-1.amazonaws.com s3.ap-south-1.amazonaws.com s3-accesspoint.ap-south-1.amazonaws.com s3-object-lambda.ap-south-1.amazonaws.com s3-website.ap-south-1.amazonaws.com s3.dualstack.ap-south-2.amazonaws.com s3-accesspoint.dualstack.ap-south-2.amazonaws.com s3-website.dualstack.ap-south-2.amazonaws.com s3.ap-south-2.amazonaws.com s3-accesspoint.ap-south-2.amazonaws.com s3-object-lambda.ap-south-2.amazonaws.com s3-website.ap-south-2.amazonaws.com s3.dualstack.ap-southeast-1.amazonaws.com s3-accesspoint.dualstack.ap-southeast-1.amazonaws.com s3-website.dualstack.ap-southeast-1.amazonaws.com s3.ap-southeast-1.amazonaws.com s3-accesspoint.ap-southeast-1.amazonaws.com s3-object-lambda.ap-southeast-1.amazonaws.com s3-website.ap-southeast-1.amazonaws.com s3.dualstack.ap-southeast-2.amazonaws.com s3-accesspoint.dualstack.ap-southeast-2.amazonaws.com s3-website.dualstack.ap-southeast-2.amazonaws.com s3.ap-southeast-2.amazonaws.com s3-accesspoint.ap-southeast-2.amazonaws.com s3-object-lambda.ap-southeast-2.amazonaws.com s3-website.ap-southeast-2.amazonaws.com s3.dualstack.ap-southeast-3.amazonaws.com s3-accesspoint.dualstack.ap-southeast-3.amazonaws.com s3-website.dualstack.ap-southeast-3.amazonaws.com s3.ap-southeast-3.amazonaws.com s3-accesspoint.ap-southeast-3.amazonaws.com s3-object-lambda.ap-southeast-3.amazonaws.com s3-website.ap-southeast-3.amazonaws.com s3.dualstack.ap-southeast-4.amazonaws.com s3-accesspoint.dualstack.ap-southeast-4.amazonaws.com s3-website.dualstack.ap-southeast-4.amazonaws.com s3.ap-southeast-4.amazonaws.com s3-accesspoint.ap-southeast-4.amazonaws.com s3-object-lambda.ap-southeast-4.amazonaws.com s3-website.ap-southeast-4.amazonaws.com s3.dualstack.ap-southeast-5.amazonaws.com s3-accesspoint.dualstack.ap-southeast-5.amazonaws.com s3-website.dualstack.ap-southeast-5.amazonaws.com s3.ap-southeast-5.amazonaws.com s3-accesspoint.ap-southeast-5.amazonaws.com s3-deprecated.ap-southeast-5.amazonaws.com s3-object-lambda.ap-southeast-5.amazonaws.com s3-website.ap-southeast-5.amazonaws.com s3.dualstack.ca-central-1.amazonaws.com s3-accesspoint.dualstack.ca-central-1.amazonaws.com s3-accesspoint-fips.dualstack.ca-central-1.amazonaws.com s3-fips.dualstack.ca-central-1.amazonaws.com s3-website.dualstack.ca-central-1.amazonaws.com s3.ca-central-1.amazonaws.com s3-accesspoint.ca-central-1.amazonaws.com s3-accesspoint-fips.ca-central-1.amazonaws.com s3-fips.ca-central-1.amazonaws.com s3-object-lambda.ca-central-1.amazonaws.com s3-website.ca-central-1.amazonaws.com s3.dualstack.ca-west-1.amazonaws.com s3-accesspoint.dualstack.ca-west-1.amazonaws.com s3-accesspoint-fips.dualstack.ca-west-1.amazonaws.com s3-fips.dualstack.ca-west-1.amazonaws.com s3-website.dualstack.ca-west-1.amazonaws.com s3.ca-west-1.amazonaws.com s3-accesspoint.ca-west-1.amazonaws.com s3-accesspoint-fips.ca-west-1.amazonaws.com s3-fips.ca-west-1.amazonaws.com s3-object-lambda.ca-west-1.amazonaws.com s3-website.ca-west-1.amazonaws.com s3.dualstack.eu-central-1.amazonaws.com s3-accesspoint.dualstack.eu-central-1.amazonaws.com s3-website.dualstack.eu-central-1.amazonaws.com s3.eu-central-1.amazonaws.com s3-accesspoint.eu-central-1.amazonaws.com s3-object-lambda.eu-central-1.amazonaws.com s3-website.eu-central-1.amazonaws.com s3.dualstack.eu-central-2.amazonaws.com s3-accesspoint.dualstack.eu-central-2.amazonaws.com s3-website.dualstack.eu-central-2.amazonaws.com s3.eu-central-2.amazonaws.com s3-accesspoint.eu-central-2.amazonaws.com s3-object-lambda.eu-central-2.amazonaws.com s3-website.eu-central-2.amazonaws.com s3.dualstack.eu-north-1.amazonaws.com s3-accesspoint.dualstack.eu-north-1.amazonaws.com s3.eu-north-1.amazonaws.com s3-accesspoint.eu-north-1.amazonaws.com s3-object-lambda.eu-north-1.amazonaws.com s3-website.eu-north-1.amazonaws.com s3.dualstack.eu-south-1.amazonaws.com s3-accesspoint.dualstack.eu-south-1.amazonaws.com s3-website.dualstack.eu-south-1.amazonaws.com s3.eu-south-1.amazonaws.com s3-accesspoint.eu-south-1.amazonaws.com s3-object-lambda.eu-south-1.amazonaws.com s3-website.eu-south-1.amazonaws.com s3.dualstack.eu-south-2.amazonaws.com s3-accesspoint.dualstack.eu-south-2.amazonaws.com s3-website.dualstack.eu-south-2.amazonaws.com s3.eu-south-2.amazonaws.com s3-accesspoint.eu-south-2.amazonaws.com s3-object-lambda.eu-south-2.amazonaws.com s3-website.eu-south-2.amazonaws.com s3.dualstack.eu-west-1.amazonaws.com s3-accesspoint.dualstack.eu-west-1.amazonaws.com s3-website.dualstack.eu-west-1.amazonaws.com s3.eu-west-1.amazonaws.com s3-accesspoint.eu-west-1.amazonaws.com s3-deprecated.eu-west-1.amazonaws.com s3-object-lambda.eu-west-1.amazonaws.com s3-website.eu-west-1.amazonaws.com s3.dualstack.eu-west-2.amazonaws.com s3-accesspoint.dualstack.eu-west-2.amazonaws.com s3.eu-west-2.amazonaws.com s3-accesspoint.eu-west-2.amazonaws.com s3-object-lambda.eu-west-2.amazonaws.com s3-website.eu-west-2.amazonaws.com s3.dualstack.eu-west-3.amazonaws.com s3-accesspoint.dualstack.eu-west-3.amazonaws.com s3-website.dualstack.eu-west-3.amazonaws.com s3.eu-west-3.amazonaws.com s3-accesspoint.eu-west-3.amazonaws.com s3-object-lambda.eu-west-3.amazonaws.com s3-website.eu-west-3.amazonaws.com s3.dualstack.il-central-1.amazonaws.com s3-accesspoint.dualstack.il-central-1.amazonaws.com s3-website.dualstack.il-central-1.amazonaws.com s3.il-central-1.amazonaws.com s3-accesspoint.il-central-1.amazonaws.com s3-object-lambda.il-central-1.amazonaws.com s3-website.il-central-1.amazonaws.com s3.dualstack.me-central-1.amazonaws.com s3-accesspoint.dualstack.me-central-1.amazonaws.com s3-website.dualstack.me-central-1.amazonaws.com s3.me-central-1.amazonaws.com s3-accesspoint.me-central-1.amazonaws.com s3-object-lambda.me-central-1.amazonaws.com s3-website.me-central-1.amazonaws.com s3.dualstack.me-south-1.amazonaws.com s3-accesspoint.dualstack.me-south-1.amazonaws.com s3.me-south-1.amazonaws.com s3-accesspoint.me-south-1.amazonaws.com s3-object-lambda.me-south-1.amazonaws.com s3-website.me-south-1.amazonaws.com s3.amazonaws.com s3-1.amazonaws.com s3-ap-east-1.amazonaws.com s3-ap-northeast-1.amazonaws.com s3-ap-northeast-2.amazonaws.com s3-ap-northeast-3.amazonaws.com s3-ap-south-1.amazonaws.com s3-ap-southeast-1.amazonaws.com s3-ap-southeast-2.amazonaws.com s3-ca-central-1.amazonaws.com s3-eu-central-1.amazonaws.com s3-eu-north-1.amazonaws.com s3-eu-west-1.amazonaws.com s3-eu-west-2.amazonaws.com s3-eu-west-3.amazonaws.com s3-external-1.amazonaws.com s3-fips-us-gov-east-1.amazonaws.com s3-fips-us-gov-west-1.amazonaws.com mrap.accesspoint.s3-global.amazonaws.com s3-me-south-1.amazonaws.com s3-sa-east-1.amazonaws.com s3-us-east-2.amazonaws.com s3-us-gov-east-1.amazonaws.com s3-us-gov-west-1.amazonaws.com s3-us-west-1.amazonaws.com s3-us-west-2.amazonaws.com s3-website-ap-northeast-1.amazonaws.com s3-website-ap-southeast-1.amazonaws.com s3-website-ap-southeast-2.amazonaws.com s3-website-eu-west-1.amazonaws.com s3-website-sa-east-1.amazonaws.com s3-website-us-east-1.amazonaws.com s3-website-us-gov-west-1.amazonaws.com s3-website-us-west-1.amazonaws.com s3-website-us-west-2.amazonaws.com s3.dualstack.sa-east-1.amazonaws.com s3-accesspoint.dualstack.sa-east-1.amazonaws.com s3-website.dualstack.sa-east-1.amazonaws.com s3.sa-east-1.amazonaws.com s3-accesspoint.sa-east-1.amazonaws.com s3-object-lambda.sa-east-1.amazonaws.com s3-website.sa-east-1.amazonaws.com s3.dualstack.us-east-1.amazonaws.com s3-accesspoint.dualstack.us-east-1.amazonaws.com s3-accesspoint-fips.dualstack.us-east-1.amazonaws.com s3-fips.dualstack.us-east-1.amazonaws.com s3-website.dualstack.us-east-1.amazonaws.com s3.us-east-1.amazonaws.com s3-accesspoint.us-east-1.amazonaws.com s3-accesspoint-fips.us-east-1.amazonaws.com s3-deprecated.us-east-1.amazonaws.com s3-fips.us-east-1.amazonaws.com s3-object-lambda.us-east-1.amazonaws.com s3-website.us-east-1.amazonaws.com s3.dualstack.us-east-2.amazonaws.com s3-accesspoint.dualstack.us-east-2.amazonaws.com s3-accesspoint-fips.dualstack.us-east-2.amazonaws.com s3-fips.dualstack.us-east-2.amazonaws.com s3-website.dualstack.us-east-2.amazonaws.com s3.us-east-2.amazonaws.com s3-accesspoint.us-east-2.amazonaws.com s3-accesspoint-fips.us-east-2.amazonaws.com s3-deprecated.us-east-2.amazonaws.com s3-fips.us-east-2.amazonaws.com s3-object-lambda.us-east-2.amazonaws.com s3-website.us-east-2.amazonaws.com s3.dualstack.us-gov-east-1.amazonaws.com s3-accesspoint.dualstack.us-gov-east-1.amazonaws.com s3-accesspoint-fips.dualstack.us-gov-east-1.amazonaws.com s3-fips.dualstack.us-gov-east-1.amazonaws.com s3.us-gov-east-1.amazonaws.com s3-accesspoint.us-gov-east-1.amazonaws.com s3-accesspoint-fips.us-gov-east-1.amazonaws.com s3-fips.us-gov-east-1.amazonaws.com s3-object-lambda.us-gov-east-1.amazonaws.com s3-website.us-gov-east-1.amazonaws.com s3.dualstack.us-gov-west-1.amazonaws.com s3-accesspoint.dualstack.us-gov-west-1.amazonaws.com s3-accesspoint-fips.dualstack.us-gov-west-1.amazonaws.com s3-fips.dualstack.us-gov-west-1.amazonaws.com s3.us-gov-west-1.amazonaws.com s3-accesspoint.us-gov-west-1.amazonaws.com s3-accesspoint-fips.us-gov-west-1.amazonaws.com s3-fips.us-gov-west-1.amazonaws.com s3-object-lambda.us-gov-west-1.amazonaws.com s3-website.us-gov-west-1.amazonaws.com s3.dualstack.us-west-1.amazonaws.com s3-accesspoint.dualstack.us-west-1.amazonaws.com s3-accesspoint-fips.dualstack.us-west-1.amazonaws.com s3-fips.dualstack.us-west-1.amazonaws.com s3-website.dualstack.us-west-1.amazonaws.com s3.us-west-1.amazonaws.com s3-accesspoint.us-west-1.amazonaws.com s3-accesspoint-fips.us-west-1.amazonaws.com s3-fips.us-west-1.amazonaws.com s3-object-lambda.us-west-1.amazonaws.com s3-website.us-west-1.amazonaws.com s3.dualstack.us-west-2.amazonaws.com s3-accesspoint.dualstack.us-west-2.amazonaws.com s3-accesspoint-fips.dualstack.us-west-2.amazonaws.com s3-fips.dualstack.us-west-2.amazonaws.com s3-website.dualstack.us-west-2.amazonaws.com s3.us-west-2.amazonaws.com s3-accesspoint.us-west-2.amazonaws.com s3-accesspoint-fips.us-west-2.amazonaws.com s3-deprecated.us-west-2.amazonaws.com s3-fips.us-west-2.amazonaws.com s3-object-lambda.us-west-2.amazonaws.com s3-website.us-west-2.amazonaws.com labeling.ap-northeast-1.sagemaker.aws labeling.ap-northeast-2.sagemaker.aws labeling.ap-south-1.sagemaker.aws labeling.ap-southeast-1.sagemaker.aws labeling.ap-southeast-2.sagemaker.aws labeling.ca-central-1.sagemaker.aws labeling.eu-central-1.sagemaker.aws labeling.eu-west-1.sagemaker.aws labeling.eu-west-2.sagemaker.aws labeling.us-east-1.sagemaker.aws labeling.us-east-2.sagemaker.aws labeling.us-west-2.sagemaker.aws notebook.af-south-1.sagemaker.aws notebook.ap-east-1.sagemaker.aws notebook.ap-northeast-1.sagemaker.aws notebook.ap-northeast-2.sagemaker.aws notebook.ap-northeast-3.sagemaker.aws notebook.ap-south-1.sagemaker.aws notebook.ap-south-2.sagemaker.aws notebook.ap-southeast-1.sagemaker.aws notebook.ap-southeast-2.sagemaker.aws notebook.ap-southeast-3.sagemaker.aws notebook.ap-southeast-4.sagemaker.aws notebook.ca-central-1.sagemaker.aws notebook-fips.ca-central-1.sagemaker.aws notebook.ca-west-1.sagemaker.aws notebook-fips.ca-west-1.sagemaker.aws notebook.eu-central-1.sagemaker.aws notebook.eu-central-2.sagemaker.aws notebook.eu-north-1.sagemaker.aws notebook.eu-south-1.sagemaker.aws notebook.eu-south-2.sagemaker.aws notebook.eu-west-1.sagemaker.aws notebook.eu-west-2.sagemaker.aws notebook.eu-west-3.sagemaker.aws notebook.il-central-1.sagemaker.aws notebook.me-central-1.sagemaker.aws notebook.me-south-1.sagemaker.aws notebook.sa-east-1.sagemaker.aws notebook.us-east-1.sagemaker.aws notebook-fips.us-east-1.sagemaker.aws notebook.us-east-2.sagemaker.aws notebook-fips.us-east-2.sagemaker.aws notebook.us-gov-east-1.sagemaker.aws notebook-fips.us-gov-east-1.sagemaker.aws notebook.us-gov-west-1.sagemaker.aws notebook-fips.us-gov-west-1.sagemaker.aws notebook.us-west-1.sagemaker.aws notebook-fips.us-west-1.sagemaker.aws notebook.us-west-2.sagemaker.aws notebook-fips.us-west-2.sagemaker.aws notebook.cn-north-1.sagemaker.com.cn notebook.cn-northwest-1.sagemaker.com.cn studio.af-south-1.sagemaker.aws studio.ap-east-1.sagemaker.aws studio.ap-northeast-1.sagemaker.aws studio.ap-northeast-2.sagemaker.aws studio.ap-northeast-3.sagemaker.aws studio.ap-south-1.sagemaker.aws studio.ap-southeast-1.sagemaker.aws studio.ap-southeast-2.sagemaker.aws studio.ap-southeast-3.sagemaker.aws studio.ca-central-1.sagemaker.aws studio.eu-central-1.sagemaker.aws studio.eu-north-1.sagemaker.aws studio.eu-south-1.sagemaker.aws studio.eu-south-2.sagemaker.aws studio.eu-west-1.sagemaker.aws studio.eu-west-2.sagemaker.aws studio.eu-west-3.sagemaker.aws studio.il-central-1.sagemaker.aws studio.me-central-1.sagemaker.aws studio.me-south-1.sagemaker.aws studio.sa-east-1.sagemaker.aws studio.us-east-1.sagemaker.aws studio.us-east-2.sagemaker.aws studio.us-gov-east-1.sagemaker.aws studio-fips.us-gov-east-1.sagemaker.aws studio.us-gov-west-1.sagemaker.aws studio-fips.us-gov-west-1.sagemaker.aws studio.us-west-1.sagemaker.aws studio.us-west-2.sagemaker.aws studio.cn-north-1.sagemaker.com.cn studio.cn-northwest-1.sagemaker.com.cn *.experiments.sagemaker.aws analytics-gateway.ap-northeast-1.amazonaws.com analytics-gateway.ap-northeast-2.amazonaws.com analytics-gateway.ap-south-1.amazonaws.com analytics-gateway.ap-southeast-1.amazonaws.com analytics-gateway.ap-southeast-2.amazonaws.com analytics-gateway.eu-central-1.amazonaws.com analytics-gateway.eu-west-1.amazonaws.com analytics-gateway.us-east-1.amazonaws.com analytics-gateway.us-east-2.amazonaws.com analytics-gateway.us-west-2.amazonaws.com amplifyapp.com *.awsapprunner.com webview-assets.aws-cloud9.af-south-1.amazonaws.com vfs.cloud9.af-south-1.amazonaws.com webview-assets.cloud9.af-south-1.amazonaws.com webview-assets.aws-cloud9.ap-east-1.amazonaws.com vfs.cloud9.ap-east-1.amazonaws.com webview-assets.cloud9.ap-east-1.amazonaws.com webview-assets.aws-cloud9.ap-northeast-1.amazonaws.com vfs.cloud9.ap-northeast-1.amazonaws.com webview-assets.cloud9.ap-northeast-1.amazonaws.com webview-assets.aws-cloud9.ap-northeast-2.amazonaws.com vfs.cloud9.ap-northeast-2.amazonaws.com webview-assets.cloud9.ap-northeast-2.amazonaws.com webview-assets.aws-cloud9.ap-northeast-3.amazonaws.com vfs.cloud9.ap-northeast-3.amazonaws.com webview-assets.cloud9.ap-northeast-3.amazonaws.com webview-assets.aws-cloud9.ap-south-1.amazonaws.com vfs.cloud9.ap-south-1.amazonaws.com webview-assets.cloud9.ap-south-1.amazonaws.com webview-assets.aws-cloud9.ap-southeast-1.amazonaws.com vfs.cloud9.ap-southeast-1.amazonaws.com webview-assets.cloud9.ap-southeast-1.amazonaws.com webview-assets.aws-cloud9.ap-southeast-2.amazonaws.com vfs.cloud9.ap-southeast-2.amazonaws.com webview-assets.cloud9.ap-southeast-2.amazonaws.com webview-assets.aws-cloud9.ca-central-1.amazonaws.com vfs.cloud9.ca-central-1.amazonaws.com webview-assets.cloud9.ca-central-1.amazonaws.com webview-assets.aws-cloud9.eu-central-1.amazonaws.com vfs.cloud9.eu-central-1.amazonaws.com webview-assets.cloud9.eu-central-1.amazonaws.com webview-assets.aws-cloud9.eu-north-1.amazonaws.com vfs.cloud9.eu-north-1.amazonaws.com webview-assets.cloud9.eu-north-1.amazonaws.com webview-assets.aws-cloud9.eu-south-1.amazonaws.com vfs.cloud9.eu-south-1.amazonaws.com webview-assets.cloud9.eu-south-1.amazonaws.com webview-assets.aws-cloud9.eu-west-1.amazonaws.com vfs.cloud9.eu-west-1.amazonaws.com webview-assets.cloud9.eu-west-1.amazonaws.com webview-assets.aws-cloud9.eu-west-2.amazonaws.com vfs.cloud9.eu-west-2.amazonaws.com webview-assets.cloud9.eu-west-2.amazonaws.com webview-assets.aws-cloud9.eu-west-3.amazonaws.com vfs.cloud9.eu-west-3.amazonaws.com webview-assets.cloud9.eu-west-3.amazonaws.com webview-assets.aws-cloud9.il-central-1.amazonaws.com vfs.cloud9.il-central-1.amazonaws.com webview-assets.aws-cloud9.me-south-1.amazonaws.com vfs.cloud9.me-south-1.amazonaws.com webview-assets.cloud9.me-south-1.amazonaws.com webview-assets.aws-cloud9.sa-east-1.amazonaws.com vfs.cloud9.sa-east-1.amazonaws.com webview-assets.cloud9.sa-east-1.amazonaws.com webview-assets.aws-cloud9.us-east-1.amazonaws.com vfs.cloud9.us-east-1.amazonaws.com webview-assets.cloud9.us-east-1.amazonaws.com webview-assets.aws-cloud9.us-east-2.amazonaws.com vfs.cloud9.us-east-2.amazonaws.com webview-assets.cloud9.us-east-2.amazonaws.com webview-assets.aws-cloud9.us-west-1.amazonaws.com vfs.cloud9.us-west-1.amazonaws.com webview-assets.cloud9.us-west-1.amazonaws.com webview-assets.aws-cloud9.us-west-2.amazonaws.com vfs.cloud9.us-west-2.amazonaws.com webview-assets.cloud9.us-west-2.amazonaws.com awsapps.com cn-north-1.eb.amazonaws.com.cn cn-northwest-1.eb.amazonaws.com.cn elasticbeanstalk.com af-south-1.elasticbeanstalk.com ap-east-1.elasticbeanstalk.com ap-northeast-1.elasticbeanstalk.com ap-northeast-2.elasticbeanstalk.com ap-northeast-3.elasticbeanstalk.com ap-south-1.elasticbeanstalk.com ap-southeast-1.elasticbeanstalk.com ap-southeast-2.elasticbeanstalk.com ap-southeast-3.elasticbeanstalk.com ca-central-1.elasticbeanstalk.com eu-central-1.elasticbeanstalk.com eu-north-1.elasticbeanstalk.com eu-south-1.elasticbeanstalk.com eu-west-1.elasticbeanstalk.com eu-west-2.elasticbeanstalk.com eu-west-3.elasticbeanstalk.com il-central-1.elasticbeanstalk.com me-south-1.elasticbeanstalk.com sa-east-1.elasticbeanstalk.com us-east-1.elasticbeanstalk.com us-east-2.elasticbeanstalk.com us-gov-east-1.elasticbeanstalk.com us-gov-west-1.elasticbeanstalk.com us-west-1.elasticbeanstalk.com us-west-2.elasticbeanstalk.com *.elb.amazonaws.com.cn *.elb.amazonaws.com awsglobalaccelerator.com *.private.repost.aws eero.online eero-stage.online apigee.io panel.dev siiites.com appspacehosted.com appspaceusercontent.com appudo.net on-aptible.com f5.si arvanedge.ir user.aseinet.ne.jp gv.vc d.gv.vc user.party.eus pimienta.org poivron.org potager.org sweetpepper.org myasustor.com cdn.prod.atlassian-dev.net translated.page myfritz.link myfritz.net onavstack.net *.awdev.ca *.advisor.ws ecommerce-shop.pl b-data.io balena-devices.com base.ec official.ec buyshop.jp fashionstore.jp handcrafted.jp kawaiishop.jp supersale.jp theshop.jp shopselect.net base.shop beagleboard.io *.beget.app pages.gay bnr.la bitbucket.io blackbaudcdn.net of.je bluebite.io boomla.net boutir.com boxfuse.io square7.ch bplaced.com bplaced.de square7.de bplaced.net square7.net *.s.brave.io shop.brendly.hr shop.brendly.rs browsersafetymark.io radio.am radio.fm uk0.bigv.io dh.bytemark.co.uk vm.bytemark.co.uk cafjs.com canva-apps.cn *.my.canvasite.cn canva-apps.com *.my.canva.site drr.ac uwu.ai carrd.co crd.co ju.mp api.gov.uk cdn77-storage.com rsc.contentproxy9.cz r.cdn77.net cdn77-ssl.net c.cdn77.org rsc.cdn77.org ssl.origin.cdn77-secure.org za.bz br.com cn.com de.com eu.com jpn.com mex.com ru.com sa.com uk.com us.com za.com com.de gb.net hu.net jp.net se.net uk.net ae.org com.se cx.ua discourse.group discourse.team clerk.app clerkstage.app *.lcl.dev *.lclstage.dev *.stg.dev *.stgstage.dev cleverapps.cc *.services.clever-cloud.com cleverapps.io cleverapps.tech clickrising.net cloudns.asia cloudns.be cloud-ip.biz cloudns.biz cloudns.cc cloudns.ch cloudns.cl cloudns.club dnsabr.com ip-ddns.com cloudns.cx cloudns.eu cloudns.in cloudns.info ddns-ip.net dns-cloud.net dns-dynamic.net cloudns.nz cloudns.org ip-dynamic.org cloudns.ph cloudns.pro cloudns.pw cloudns.us c66.me cloud66.ws cloud66.zone jdevcloud.com wpdevcloud.com cloudaccess.host freesite.host cloudaccess.net *.cloudera.site cf-ipfs.com cloudflare-ipfs.com trycloudflare.com pages.dev r2.dev workers.dev cloudflare.net cdn.cloudflare.net cdn.cloudflareanycast.net cdn.cloudflarecn.net cdn.cloudflareglobal.net cust.cloudscale.ch objects.lpg.cloudscale.ch objects.rma.cloudscale.ch wnext.app cnpy.gdn *.otap.co co.ca co.com codeberg.page csb.app preview.csb.app co.nl co.no webhosting.be hosting-cluster.nl ctfcloud.net convex.site ac.ru edu.ru gov.ru int.ru mil.ru test.ru dyn.cosidns.de dnsupdater.de dynamisches-dns.de internet-dns.de l-o-g-i-n.de dynamic-dns.info feste-ip.net knx-server.net static-access.net craft.me realm.cz on.crisp.email *.cryptonomic.net curv.dev cfolks.pl cyon.link cyon.site platform0.app fnwk.site folionetwork.site biz.dk co.dk firm.dk reg.dk store.dk dyndns.dappnode.io builtwithdark.com darklang.io demo.datadetect.com instance.datadetect.com edgestack.me dattolocal.com dattorelay.com dattoweb.com mydatto.com dattolocal.net mydatto.net ddnss.de dyn.ddnss.de dyndns.ddnss.de dyn-ip24.de dyndns1.de home-webserver.de dyn.home-webserver.de myhome-server.de ddnss.org debian.net definima.io definima.net deno.dev deno-staging.dev dedyn.io deta.app deta.dev dfirma.pl dkonto.pl you2.pl ondigitalocean.app *.digitaloceanspaces.com us.kg rss.my.id diher.solutions discordsays.com discordsez.com jozi.biz dnshome.de online.th shop.th drayddns.com shoparena.pl dreamhosters.com durumis.com mydrobo.com drud.io drud.us duckdns.org dy.fi tunk.org dyndns.biz for-better.biz for-more.biz for-some.biz for-the.biz selfip.biz webhop.biz ftpaccess.cc game-server.cc myphotos.cc scrapping.cc blogdns.com cechire.com dnsalias.com dnsdojo.com doesntexist.com dontexist.com doomdns.com dyn-o-saur.com dynalias.com dyndns-at-home.com dyndns-at-work.com dyndns-blog.com dyndns-free.com dyndns-home.com dyndns-ip.com dyndns-mail.com dyndns-office.com dyndns-pics.com dyndns-remote.com dyndns-server.com dyndns-web.com dyndns-wiki.com dyndns-work.com est-a-la-maison.com est-a-la-masion.com est-le-patron.com est-mon-blogueur.com from-ak.com from-al.com from-ar.com from-ca.com from-ct.com from-dc.com from-de.com from-fl.com from-ga.com from-hi.com from-ia.com from-id.com from-il.com from-in.com from-ks.com from-ky.com from-ma.com from-md.com from-mi.com from-mn.com from-mo.com from-ms.com from-mt.com from-nc.com from-nd.com from-ne.com from-nh.com from-nj.com from-nm.com from-nv.com from-oh.com from-ok.com from-or.com from-pa.com from-pr.com from-ri.com from-sc.com from-sd.com from-tn.com from-tx.com from-ut.com from-va.com from-vt.com from-wa.com from-wi.com from-wv.com from-wy.com getmyip.com gotdns.com hobby-site.com homelinux.com homeunix.com iamallama.com is-a-anarchist.com is-a-blogger.com is-a-bookkeeper.com is-a-bulls-fan.com is-a-caterer.com is-a-chef.com is-a-conservative.com is-a-cpa.com is-a-cubicle-slave.com is-a-democrat.com is-a-designer.com is-a-doctor.com is-a-financialadvisor.com is-a-geek.com is-a-green.com is-a-guru.com is-a-hard-worker.com is-a-hunter.com is-a-landscaper.com is-a-lawyer.com is-a-liberal.com is-a-libertarian.com is-a-llama.com is-a-musician.com is-a-nascarfan.com is-a-nurse.com is-a-painter.com is-a-personaltrainer.com is-a-photographer.com is-a-player.com is-a-republican.com is-a-rockstar.com is-a-socialist.com is-a-student.com is-a-teacher.com is-a-techie.com is-a-therapist.com is-an-accountant.com is-an-actor.com is-an-actress.com is-an-anarchist.com is-an-artist.com is-an-engineer.com is-an-entertainer.com is-certified.com is-gone.com is-into-anime.com is-into-cars.com is-into-cartoons.com is-into-games.com is-leet.com is-not-certified.com is-slick.com is-uberleet.com is-with-theband.com isa-geek.com isa-hockeynut.com issmarterthanyou.com likes-pie.com likescandy.com neat-url.com saves-the-whales.com selfip.com sells-for-less.com sells-for-u.com servebbs.com simple-url.com space-to-rent.com teaches-yoga.com writesthisblog.com ath.cx fuettertdasnetz.de isteingeek.de istmein.de lebtimnetz.de leitungsen.de traeumtgerade.de barrel-of-knowledge.info barrell-of-knowledge.info dyndns.info for-our.info groks-the.info groks-this.info here-for-more.info knowsitall.info selfip.info webhop.info forgot.her.name forgot.his.name at-band-camp.net blogdns.net broke-it.net buyshouses.net dnsalias.net dnsdojo.net does-it.net dontexist.net dynalias.net dynathome.net endofinternet.net from-az.net from-co.net from-la.net from-ny.net gets-it.net ham-radio-op.net homeftp.net homeip.net homelinux.net homeunix.net in-the-band.net is-a-chef.net is-a-geek.net isa-geek.net kicks-ass.net office-on-the.net podzone.net scrapper-site.net selfip.net sells-it.net servebbs.net serveftp.net thruhere.net webhop.net merseine.nu mine.nu shacknet.nu blogdns.org blogsite.org boldlygoingnowhere.org dnsalias.org dnsdojo.org doesntexist.org dontexist.org doomdns.org dvrdns.org dynalias.org dyndns.org go.dyndns.org home.dyndns.org endofinternet.org endoftheinternet.org from-me.org game-host.org gotdns.org hobby-site.org homedns.org homeftp.org homelinux.org homeunix.org is-a-bruinsfan.org is-a-candidate.org is-a-celticsfan.org is-a-chef.org is-a-geek.org is-a-knight.org is-a-linux-user.org is-a-patsfan.org is-a-soxfan.org is-found.org is-lost.org is-saved.org is-very-bad.org is-very-evil.org is-very-good.org is-very-nice.org is-very-sweet.org isa-geek.org kicks-ass.org misconfused.org podzone.org readmyblog.org selfip.org sellsyourhome.org servebbs.org serveftp.org servegame.org stuff-4-sale.org webhop.org better-than.tv dyndns.tv on-the-web.tv worse-than.tv is-by.us land-4-sale.us stuff-4-sale.us dyndns.ws mypets.ws ddnsfree.com ddnsgeek.com giize.com gleeze.com kozow.com loseyourip.com ooguy.com theworkpc.com casacam.net dynu.net accesscam.org camdvr.org freeddns.org mywire.org webredirect.org myddns.rocks dynv6.net e4.cz easypanel.app easypanel.host *.ewp.live twmail.cc twmail.net twmail.org mymailer.com.tw url.tw at.emf.camp rt.ht elementor.cloud elementor.cool en-root.fr mytuleap.com tuleap-partners.com encr.app encoreapi.com eu.encoway.cloud eu.org al.eu.org asso.eu.org at.eu.org au.eu.org be.eu.org bg.eu.org ca.eu.org cd.eu.org ch.eu.org cn.eu.org cy.eu.org cz.eu.org de.eu.org dk.eu.org edu.eu.org ee.eu.org es.eu.org fi.eu.org fr.eu.org gr.eu.org hr.eu.org hu.eu.org ie.eu.org il.eu.org in.eu.org int.eu.org is.eu.org it.eu.org jp.eu.org kr.eu.org lt.eu.org lu.eu.org lv.eu.org me.eu.org mk.eu.org mt.eu.org my.eu.org net.eu.org ng.eu.org nl.eu.org no.eu.org nz.eu.org pl.eu.org pt.eu.org ro.eu.org ru.eu.org se.eu.org si.eu.org sk.eu.org tr.eu.org uk.eu.org us.eu.org eurodir.ru eu-1.evennode.com eu-2.evennode.com eu-3.evennode.com eu-4.evennode.com us-1.evennode.com us-2.evennode.com us-3.evennode.com us-4.evennode.com relay.evervault.app relay.evervault.dev expo.app staging.expo.app onfabrica.com ru.net adygeya.ru bashkiria.ru bir.ru cbg.ru com.ru dagestan.ru grozny.ru kalmykia.ru kustanai.ru marine.ru mordovia.ru msk.ru mytis.ru nalchik.ru nov.ru pyatigorsk.ru spb.ru vladikavkaz.ru vladimir.ru abkhazia.su adygeya.su aktyubinsk.su arkhangelsk.su armenia.su ashgabad.su azerbaijan.su balashov.su bashkiria.su bryansk.su bukhara.su chimkent.su dagestan.su east-kazakhstan.su exnet.su georgia.su grozny.su ivanovo.su jambyl.su kalmykia.su kaluga.su karacol.su karaganda.su karelia.su khakassia.su krasnodar.su kurgan.su kustanai.su lenug.su mangyshlak.su mordovia.su msk.su murmansk.su nalchik.su navoi.su north-kazakhstan.su nov.su obninsk.su penza.su pokrovsk.su sochi.su spb.su tashkent.su termez.su togliatti.su troitsk.su tselinograd.su tula.su tuva.su vladikavkaz.su vladimir.su vologda.su channelsdvr.net u.channelsdvr.net edgecompute.app fastly-edge.com fastly-terrarium.com freetls.fastly.net map.fastly.net a.prod.fastly.net global.prod.fastly.net a.ssl.fastly.net b.ssl.fastly.net global.ssl.fastly.net fastlylb.net map.fastlylb.net *.user.fm fastvps-server.com fastvps.host myfast.host fastvps.site myfast.space conn.uk copro.uk hosp.uk fedorainfracloud.org fedorapeople.org cloud.fedoraproject.org app.os.fedoraproject.org app.os.stg.fedoraproject.org mydobiss.com fh-muenster.io filegear.me firebaseapp.com fldrv.com flutterflow.app fly.dev shw.io edgeapp.net forgeblocks.com id.forgerock.io framer.ai framer.app framercanvas.com framer.media framer.photos framer.website framer.wiki 0e.vc freebox-os.com freeboxos.com fbx-os.fr fbxos.fr freebox-os.fr freeboxos.fr freedesktop.org freemyip.com *.frusky.de wien.funkfeuer.at daemon.asia dix.asia mydns.bz 0am.jp 0g0.jp 0j0.jp 0t0.jp mydns.jp pgw.jp wjg.jp keyword-on.net live-on.net server-on.net mydns.tw mydns.vc *.futurecms.at *.ex.futurecms.at *.in.futurecms.at futurehosting.at futuremailing.at *.ex.ortsinfo.at *.kunden.ortsinfo.at *.statics.cloud aliases121.com campaign.gov.uk service.gov.uk independent-commission.uk independent-inquest.uk independent-inquiry.uk independent-panel.uk independent-review.uk public-inquiry.uk royal-commission.uk gehirn.ne.jp usercontent.jp gentapps.com gentlentapis.com lab.ms cdn-edges.net localcert.net localhostcert.net gsj.bz githubusercontent.com githubpreview.dev github.io gitlab.io gitapp.si gitpage.si glitch.me nog.community co.ro shop.ro lolipop.io angry.jp babyblue.jp babymilk.jp backdrop.jp bambina.jp bitter.jp blush.jp boo.jp boy.jp boyfriend.jp but.jp candypop.jp capoo.jp catfood.jp cheap.jp chicappa.jp chillout.jp chips.jp chowder.jp chu.jp ciao.jp cocotte.jp coolblog.jp cranky.jp cutegirl.jp daa.jp deca.jp deci.jp digick.jp egoism.jp fakefur.jp fem.jp flier.jp floppy.jp fool.jp frenchkiss.jp girlfriend.jp girly.jp gloomy.jp gonna.jp greater.jp hacca.jp heavy.jp her.jp hiho.jp hippy.jp holy.jp hungry.jp icurus.jp itigo.jp jellybean.jp kikirara.jp kill.jp kilo.jp kuron.jp littlestar.jp lolipopmc.jp lolitapunk.jp lomo.jp lovepop.jp lovesick.jp main.jp mods.jp mond.jp mongolian.jp moo.jp namaste.jp nikita.jp nobushi.jp noor.jp oops.jp parallel.jp parasite.jp pecori.jp peewee.jp penne.jp pepper.jp perma.jp pigboat.jp pinoko.jp punyu.jp pupu.jp pussycat.jp pya.jp raindrop.jp readymade.jp sadist.jp schoolbus.jp secret.jp staba.jp stripper.jp sub.jp sunnyday.jp thick.jp tonkotsu.jp under.jp upper.jp velvet.jp verse.jp versus.jp vivian.jp watson.jp weblike.jp whitesnow.jp zombie.jp heteml.net graphic.design goip.de blogspot.ae blogspot.al blogspot.am *.hosted.app *.run.app web.app blogspot.com.ar blogspot.co.at blogspot.com.au blogspot.ba blogspot.be blogspot.bg blogspot.bj blogspot.com.br blogspot.com.by blogspot.ca blogspot.cf blogspot.ch blogspot.cl blogspot.com.co *.0emm.com appspot.com *.r.appspot.com blogspot.com codespot.com googleapis.com googlecode.com pagespeedmobilizer.com withgoogle.com withyoutube.com blogspot.cv blogspot.com.cy blogspot.cz blogspot.de *.gateway.dev blogspot.dk blogspot.com.ee blogspot.com.eg blogspot.com.es blogspot.fi blogspot.fr cloud.goog translate.goog *.usercontent.goog blogspot.gr blogspot.hk blogspot.hr blogspot.hu blogspot.co.id blogspot.ie blogspot.co.il blogspot.in blogspot.is blogspot.it blogspot.jp blogspot.co.ke blogspot.kr blogspot.li blogspot.lt blogspot.lu blogspot.md blogspot.mk blogspot.com.mt blogspot.mx blogspot.my cloudfunctions.net blogspot.com.ng blogspot.nl blogspot.no blogspot.co.nz blogspot.pe blogspot.pt blogspot.qa blogspot.re blogspot.ro blogspot.rs blogspot.ru blogspot.se blogspot.sg blogspot.si blogspot.sk blogspot.sn blogspot.td blogspot.com.tr blogspot.tw blogspot.ug blogspot.co.uk blogspot.com.uy blogspot.vn blogspot.co.za goupile.fr pymnt.uk cloudapps.digital london.cloudapps.digital gov.nl grafana-dev.net grayjayleagues.com g\u00fcnstigbestellen.de g\u00fcnstigliefern.de fin.ci free.hr caa.li ua.rs conf.se h\u00e4kkinen.fi hrsn.dev hashbang.sh hasura.app hasura-app.io hatenablog.com hatenadiary.com hateblo.jp hatenablog.jp hatenadiary.jp hatenadiary.org pages.it.hs-heilbronn.de pages-research.it.hs-heilbronn.de heiyu.space helioho.st heliohost.us hepforge.org herokuapp.com herokussl.com heyflow.page heyflow.site ravendb.cloud ravendb.community development.run ravendb.run homesklep.pl *.kin.one *.id.pub *.kin.pub secaas.hk hoplix.shop orx.biz biz.gl biz.ng co.biz.ng dl.biz.ng go.biz.ng lg.biz.ng on.biz.ng col.ng firm.ng gen.ng ltd.ng ngo.ng plc.ng ie.ua hostyhosting.io hf.space static.hf.space hypernode.io iobb.net co.cz *.moonscale.io moonscale.net gr.com iki.fi ibxos.it iliadboxos.it smushcdn.com wphostedmail.com wpmucdn.com tempurl.host wpmudev.host dyn-berlin.de in-berlin.de in-brb.de in-butter.de in-dsl.de in-vpn.de in-dsl.net in-vpn.net in-dsl.org in-vpn.org biz.at info.at info.cx ac.leg.br al.leg.br am.leg.br ap.leg.br ba.leg.br ce.leg.br df.leg.br es.leg.br go.leg.br ma.leg.br mg.leg.br ms.leg.br mt.leg.br pa.leg.br pb.leg.br pe.leg.br pi.leg.br pr.leg.br rj.leg.br rn.leg.br ro.leg.br rr.leg.br rs.leg.br sc.leg.br se.leg.br sp.leg.br to.leg.br pixolino.com na4u.ru apps-1and1.com live-website.com apps-1and1.net websitebuilder.online app-ionos.space iopsys.se *.dweb.link ipifony.net ir.md is-a-good.dev is-a.dev iservschule.de mein-iserv.de schulplattform.de schulserver.de test-iserv.de iserv.dev mel.cloudlets.com.au cloud.interhostsolutions.be alp1.ae.flow.ch appengine.flow.ch es-1.axarnet.cloud diadem.cloud vip.jelastic.cloud jele.cloud it1.eur.aruba.jenv-aruba.cloud it1.jenv-aruba.cloud keliweb.cloud cs.keliweb.cloud oxa.cloud tn.oxa.cloud uk.oxa.cloud primetel.cloud uk.primetel.cloud ca.reclaim.cloud uk.reclaim.cloud us.reclaim.cloud ch.trendhosting.cloud de.trendhosting.cloud jele.club dopaas.com paas.hosted-by-previder.com rag-cloud.hosteur.com rag-cloud-ch.hosteur.com jcloud.ik-server.com jcloud-ver-jpc.ik-server.com demo.jelastic.com paas.massivegrid.com jed.wafaicloud.com ryd.wafaicloud.com j.scaleforce.com.cy jelastic.dogado.eu fi.cloudplatform.fi demo.datacenter.fi paas.datacenter.fi jele.host mircloud.host paas.beebyte.io sekd1.beebyteapp.io jele.io jc.neen.it jcloud.kz cloudjiffy.net fra1-de.cloudjiffy.net west1-us.cloudjiffy.net jls-sto1.elastx.net jls-sto2.elastx.net jls-sto3.elastx.net fr-1.paas.massivegrid.net lon-1.paas.massivegrid.net lon-2.paas.massivegrid.net ny-1.paas.massivegrid.net ny-2.paas.massivegrid.net sg-1.paas.massivegrid.net jelastic.saveincloud.net nordeste-idc.saveincloud.net j.scaleforce.net sdscloud.pl unicloud.pl mircloud.ru enscaled.sg jele.site jelastic.team orangecloud.tn j.layershift.co.uk phx.enscaled.us mircloud.us myjino.ru *.hosting.myjino.ru *.landing.myjino.ru *.spectrum.myjino.ru *.vps.myjino.ru jotelulu.cloud webadorsite.com jouwweb.site *.cns.joyent.com *.triton.zone js.org kaas.gg khplay.nl kapsi.fi ezproxy.kuleuven.be kuleuven.cloud keymachine.de kinghost.net uni5.net knightpoint.systems koobin.events webthings.io krellian.net oya.to git-repos.de lcube-server.de svn-repos.de leadpages.co lpages.co lpusercontent.com lelux.site libp2p.direct runcontainers.dev co.business co.education co.events co.financial co.network co.place co.technology linkyard-cloud.ch linkyard.cloud members.linode.com *.nodebalancer.linode.com *.linodeobjects.com ip.linodeusercontent.com we.bs filegear-sg.me ggff.net *.user.localcert.dev lodz.pl pabianice.pl plock.pl sieradz.pl skierniewice.pl zgierz.pl loginline.app loginline.dev loginline.io loginline.services loginline.site lohmus.me servers.run krasnik.pl leczna.pl lubartow.pl lublin.pl poniatowa.pl swidnik.pl glug.org.uk lug.org.uk lugs.org.uk barsy.bg barsy.club barsycenter.com barsyonline.com barsy.de barsy.dev barsy.eu barsy.gr barsy.in barsy.info barsy.io barsy.me barsy.menu barsyonline.menu barsy.mobi barsy.net barsy.online barsy.org barsy.pro barsy.pub barsy.ro barsy.rs barsy.shop barsyonline.shop barsy.site barsy.store barsy.support barsy.uk barsy.co.uk barsyonline.co.uk *.magentosite.cloud hb.cldmail.ru matlab.cloud modelscape.com mwcloudnonprod.com polyspace.com mayfirst.info mayfirst.org mazeplay.com mcdir.me mcdir.ru vps.mcdir.ru mcpre.ru mediatech.by mediatech.dev hra.health medusajs.app miniserver.com memset.net messerli.app atmeta.com apps.fbsbx.com *.cloud.metacentrum.cz custom.metacentrum.cz flt.cloud.muni.cz usr.cloud.muni.cz meteorapp.com eu.meteorapp.com co.pl *.azurecontainer.io azure-api.net azure-mobile.net azureedge.net azurefd.net azurestaticapps.net 1.azurestaticapps.net 2.azurestaticapps.net 3.azurestaticapps.net 4.azurestaticapps.net 5.azurestaticapps.net 6.azurestaticapps.net 7.azurestaticapps.net centralus.azurestaticapps.net eastasia.azurestaticapps.net eastus2.azurestaticapps.net westeurope.azurestaticapps.net westus2.azurestaticapps.net azurewebsites.net cloudapp.net trafficmanager.net blob.core.windows.net servicebus.windows.net routingthecloud.com sn.mynetname.net routingthecloud.net routingthecloud.org csx.cc mydbserver.com webspaceconfig.de mittwald.info mittwaldserver.info typo3server.info project.space modx.dev bmoattachments.org net.ru org.ru pp.ru hostedpi.com caracal.mythic-beasts.com customer.mythic-beasts.com fentiger.mythic-beasts.com lynx.mythic-beasts.com ocelot.mythic-beasts.com oncilla.mythic-beasts.com onza.mythic-beasts.com sphinx.mythic-beasts.com vs.mythic-beasts.com x.mythic-beasts.com yali.mythic-beasts.com cust.retrosnub.co.uk ui.nabu.casa cloud.nospamproxy.com netfy.app netlify.app 4u.com nfshost.com ipfs.nftstorage.link ngo.us ngrok.app ngrok-free.app ngrok.dev ngrok-free.dev ngrok.io ap.ngrok.io au.ngrok.io eu.ngrok.io in.ngrok.io jp.ngrok.io sa.ngrok.io us.ngrok.io ngrok.pizza ngrok.pro torun.pl nh-serv.co.uk nimsite.uk mmafan.biz myftp.biz no-ip.biz no-ip.ca fantasyleague.cc gotdns.ch 3utilities.com blogsyte.com ciscofreak.com damnserver.com ddnsking.com ditchyourip.com dnsiskinky.com dynns.com geekgalaxy.com health-carereform.com homesecuritymac.com homesecuritypc.com myactivedirectory.com mysecuritycamera.com myvnc.com net-freaks.com onthewifi.com point2this.com quicksytes.com securitytactics.com servebeer.com servecounterstrike.com serveexchange.com serveftp.com servegame.com servehalflife.com servehttp.com servehumour.com serveirc.com servemp3.com servep2p.com servepics.com servequake.com servesarcasm.com stufftoread.com unusualperson.com workisboring.com dvrcam.info ilovecollege.info no-ip.info brasilia.me ddns.me dnsfor.me hopto.me loginto.me noip.me webhop.me bounceme.net ddns.net eating-organic.net mydissent.net myeffect.net mymediapc.net mypsx.net mysecuritycamera.net nhlfan.net no-ip.net pgafan.net privatizehealthinsurance.net redirectme.net serveblog.net serveminecraft.net sytes.net cable-modem.org collegefan.org couchpotatofries.org hopto.org mlbfan.org myftp.org mysecuritycamera.org nflfan.org no-ip.org read-books.org ufcfan.org zapto.org no-ip.co.uk golffan.us noip.us pointto.us stage.nodeart.io *.developer.app noop.app *.northflank.app *.build.run *.code.run *.database.run *.migration.run noticeable.news notion.site dnsking.ch mypi.co n4t.co 001www.com myiphost.com forumz.info soundcast.me tcp4.me dnsup.net hicam.net now-dns.net ownip.net vpndns.net dynserv.org now-dns.org x443.pw now-dns.top ntdll.top freeddns.us nsupdate.info nerdpol.ovh nyc.mn prvcy.page obl.ong observablehq.cloud static.observableusercontent.com omg.lol cloudycluster.net omniwe.site 123webseite.at 123website.be simplesite.com.br 123website.ch simplesite.com 123webseite.de 123hjemmeside.dk 123miweb.es 123kotisivu.fi 123siteweb.fr simplesite.gr 123homepage.it 123website.lu 123website.nl 123hjemmeside.no service.one simplesite.pl 123paginaweb.pt 123minsida.se is-a-fullstack.dev is-cool.dev is-not-a.dev localplayer.dev is-local.org opensocial.site opencraft.hosting 16-b.it 32-b.it 64-b.it orsites.com operaunite.com *.customer-oci.com *.oci.customer-oci.com *.ocp.customer-oci.com *.ocs.customer-oci.com *.oraclecloudapps.com *.oraclegovcloudapps.com *.oraclegovcloudapps.uk tech.orange can.re authgear-staging.com authgearapps.com skygearapp.com outsystemscloud.com *.hosting.ovh.net *.webpaas.ovh.net ownprovider.com own.pm *.owo.codes ox.rs oy.lc pgfog.com pagexl.com gotpantheon.com pantheonsite.io *.paywhirl.com *.xmit.co xmit.dev madethis.site srv.us gh.srv.us gl.srv.us lk3.ru mypep.link perspecta.cloud on-web.fr *.upsun.app upsunapp.com ent.platform.sh eu.platform.sh us.platform.sh *.platformsh.site *.tst.site platter-app.com platter-app.dev platterp.us pley.games onporter.run co.bn postman-echo.com pstmn.io mock.pstmn.io httpbin.org prequalifyme.today xen.prgmr.com priv.at protonet.io chirurgiens-dentistes-en-france.fr byen.site pubtls.org pythonanywhere.com eu.pythonanywhere.com qa2.com qcx.io *.sys.qcx.io myqnapcloud.cn alpha-myqnapcloud.com dev-myqnapcloud.com mycloudnas.com mynascloud.com myqnapcloud.com qoto.io qualifioapp.com ladesk.com qbuser.com *.quipelements.com vapor.cloud vaporcloud.io rackmaze.com rackmaze.net cloudsite.builders myradweb.net servername.us web.in in.net myrdbx.io site.rb-hosting.io *.on-rancher.cloud *.on-k3s.io *.on-rio.io ravpage.co.il readthedocs-hosted.com readthedocs.io rhcloud.com instances.spawn.cc onrender.com app.render.com replit.app id.replit.app firewalledreplit.co id.firewalledreplit.co repl.co id.repl.co replit.dev archer.replit.dev bones.replit.dev canary.replit.dev global.replit.dev hacker.replit.dev id.replit.dev janeway.replit.dev kim.replit.dev kira.replit.dev kirk.replit.dev odo.replit.dev paris.replit.dev picard.replit.dev pike.replit.dev prerelease.replit.dev reed.replit.dev riker.replit.dev sisko.replit.dev spock.replit.dev staging.replit.dev sulu.replit.dev tarpit.replit.dev teams.replit.dev tucker.replit.dev wesley.replit.dev worf.replit.dev repl.run resindevice.io devices.resinstaging.io hzc.io adimo.co.uk itcouldbewor.se aus.basketball nz.basketball git-pages.rit.edu rocky.page rub.de ruhr-uni-bochum.de io.noc.ruhr-uni-bochum.de \u0431\u0438\u0437.\u0440\u0443\u0441 \u043a\u043e\u043c.\u0440\u0443\u0441 \u043a\u0440\u044b\u043c.\u0440\u0443\u0441 \u043c\u0438\u0440.\u0440\u0443\u0441 \u043c\u0441\u043a.\u0440\u0443\u0441 \u043e\u0440\u0433.\u0440\u0443\u0441 \u0441\u0430\u043c\u0430\u0440\u0430.\u0440\u0443\u0441 \u0441\u043e\u0447\u0438.\u0440\u0443\u0441 \u0441\u043f\u0431.\u0440\u0443\u0441 \u044f.\u0440\u0443\u0441 ras.ru nyat.app 180r.com dojin.com sakuratan.com sakuraweb.com x0.com 2-d.jp bona.jp crap.jp daynight.jp eek.jp flop.jp halfmoon.jp jeez.jp matrix.jp mimoza.jp ivory.ne.jp mail-box.ne.jp mints.ne.jp mokuren.ne.jp opal.ne.jp sakura.ne.jp sumomo.ne.jp topaz.ne.jp netgamers.jp nyanta.jp o0o0.jp rdy.jp rgr.jp rulez.jp s3.isk01.sakurastorage.jp s3.isk02.sakurastorage.jp saloon.jp sblo.jp skr.jp tank.jp uh-oh.jp undo.jp rs.webaccel.jp user.webaccel.jp websozai.jp xii.jp squares.net jpn.org kirara.st x0.to from.tv sakura.tv *.builder.code.com *.dev-builder.code.com *.stg-builder.code.com *.001.test.code-builder-stg.platform.salesforce.com *.d.crm.dev *.w.crm.dev *.wa.crm.dev *.wb.crm.dev *.wc.crm.dev *.wd.crm.dev *.we.crm.dev *.wf.crm.dev sandcats.io logoip.com logoip.de fr-par-1.baremetal.scw.cloud fr-par-2.baremetal.scw.cloud nl-ams-1.baremetal.scw.cloud cockpit.fr-par.scw.cloud fnc.fr-par.scw.cloud functions.fnc.fr-par.scw.cloud k8s.fr-par.scw.cloud nodes.k8s.fr-par.scw.cloud s3.fr-par.scw.cloud s3-website.fr-par.scw.cloud whm.fr-par.scw.cloud priv.instances.scw.cloud pub.instances.scw.cloud k8s.scw.cloud cockpit.nl-ams.scw.cloud k8s.nl-ams.scw.cloud nodes.k8s.nl-ams.scw.cloud s3.nl-ams.scw.cloud s3-website.nl-ams.scw.cloud whm.nl-ams.scw.cloud cockpit.pl-waw.scw.cloud k8s.pl-waw.scw.cloud nodes.k8s.pl-waw.scw.cloud s3.pl-waw.scw.cloud s3-website.pl-waw.scw.cloud scalebook.scw.cloud smartlabeling.scw.cloud dedibox.fr schokokeks.net gov.scot service.gov.scot scrysec.com client.scrypted.io firewall-gateway.com firewall-gateway.de my-gateway.de my-router.de spdns.de spdns.eu firewall-gateway.net my-firewall.org myfirewall.org spdns.org seidat.net sellfy.store minisite.ms senseering.net servebolt.cloud biz.ua co.ua pp.ua as.sh.cn sheezy.games shiftedit.io myshopblocks.com myshopify.com shopitsite.com shopware.shop shopware.store mo-siemens.io 1kapp.com appchizi.com applinzi.com sinaapp.com vipsinaapp.com siteleaf.net small-web.org aeroport.fr avocat.fr chambagri.fr chirurgiens-dentistes.fr experts-comptables.fr medecin.fr notaires.fr pharmacien.fr port.fr veterinaire.fr vp4.me *.snowflake.app *.privatelink.snowflake.app streamlit.app streamlitapp.com try-snowplow.com mafelo.net playstation-cloud.com srht.site apps.lair.io *.stolos.io spacekit.io ind.mom customer.speedpartner.de myspreadshop.at myspreadshop.com.au myspreadshop.be myspreadshop.ca myspreadshop.ch myspreadshop.com myspreadshop.de myspreadshop.dk myspreadshop.es myspreadshop.fi myspreadshop.fr myspreadshop.ie myspreadshop.it myspreadshop.net myspreadshop.nl myspreadshop.no myspreadshop.pl myspreadshop.se myspreadshop.co.uk w-corp-staticblitz.com w-credentialless-staticblitz.com w-staticblitz.com stackhero-network.com runs.onstackit.cloud stackit.gg stackit.rocks stackit.run stackit.zone musician.io novecore.site api.stdlib.com feedback.ac forms.ac assessments.cx calculators.cx funnels.cx paynow.cx quizzes.cx researched.cx tests.cx surveys.so storebase.store storipress.app storj.farm strapiapp.com media.strapiapp.com vps-host.net atl.jelastic.vps-host.net njs.jelastic.vps-host.net ric.jelastic.vps-host.net streak-link.com streaklinks.com streakusercontent.com soc.srcf.net user.srcf.net utwente.io temp-dns.com supabase.co supabase.in supabase.net syncloud.it dscloud.biz direct.quickconnect.cn dsmynas.com familyds.com diskstation.me dscloud.me i234.me myds.me synology.me dscloud.mobi dsmynas.net familyds.net dsmynas.org familyds.org direct.quickconnect.to vpnplus.to mytabit.com mytabit.co.il tabitorder.co.il taifun-dns.de ts.net *.c.ts.net gda.pl gdansk.pl gdynia.pl med.pl sopot.pl taveusercontent.com p.tawk.email p.tawkto.email site.tb-hosting.com edugit.io s3.teckids.org telebit.app telebit.io *.telebit.xyz *.firenet.ch *.svc.firenet.ch reservd.com thingdustdata.com cust.dev.thingdust.io reservd.dev.thingdust.io cust.disrec.thingdust.io reservd.disrec.thingdust.io cust.prod.thingdust.io cust.testing.thingdust.io reservd.testing.thingdust.io tickets.io arvo.network azimuth.network tlon.network torproject.net pages.torproject.net townnews-staging.com 12hp.at 2ix.at 4lima.at lima-city.at 12hp.ch 2ix.ch 4lima.ch lima-city.ch trafficplex.cloud de.cool 12hp.de 2ix.de 4lima.de lima-city.de 1337.pictures clan.rip lima-city.rocks webspace.rocks lima.zone *.transurl.be *.transurl.eu site.transip.me *.transurl.nl tuxfamily.org dd-dns.de dray-dns.de draydns.de dyn-vpn.de dynvpn.de mein-vigor.de my-vigor.de my-wan.de syno-ds.de synology-diskstation.de synology-ds.de diskstation.eu diskstation.org typedream.app pro.typeform.com *.uberspace.de uber.space hk.com inc.hk ltd.hk hk.org it.com unison-services.cloud virtual-user.de virtualuser.de name.pm sch.tf biz.wf sch.wf org.yt rs.ba bielsko.pl upli.io urown.cloud dnsupdate.info us.org v.ua express.val.run web.val.run vercel.app v0.build vercel.dev vusercontent.net now.sh 2038.io router.management v-info.info voorloper.cloud *.vultrobjects.com wafflecell.com webflow.io webflowtest.io *.webhare.dev bookonline.app hotelwithflight.com reserve-online.com reserve-online.net cprapid.com pleskns.com wp2.host pdns.page plesk.page wpsquared.site *.wadl.top remotewd.com box.ca pages.wiardweb.com toolforge.org wmcloud.org wmflabs.org wdh.app panel.gg daemon.panel.gg wixsite.com wixstudio.com editorx.io wixstudio.io wix.run messwithdns.com woltlab-demo.com myforum.community community-pro.de diskussionsbereich.de community-pro.net meinforum.net affinitylottery.org.uk raffleentry.org.uk weeklylottery.org.uk wpenginepowered.com js.wpenginepowered.com half.host xnbay.com u2.xnbay.com u2-local.xnbay.com cistron.nl demon.nl xs4all.space yandexcloud.net storage.yandexcloud.net website.yandexcloud.net official.academy yolasite.com yombo.me ynh.fr nohost.me noho.st za.net za.org zap.cloud zeabur.app bss.design basicserver.io virtualserver.io enterprisecloud.nu'.split(' ').reduce((l,
291
+ W)=>{const r=W.replace(/^(\*\.|!)/,''),n=H.toASCII(r),Z=W.charAt(0);if(l.has(n))throw Error(`Multiple rules found for ${W} (${n})`);return l.set(n,{rule:W,suffix:r,punySuffix:n,wildcard:Z==='*',exception:Z==='!'}),l},new Map),V=l=>{l=H.toASCII(l).split('.');for(let r=0;r<l.length;r++){var W=l.slice(r).join('.');if(W=M.get(W))return W}return null},D={DOMAIN_TOO_SHORT:'Domain name too short.',DOMAIN_TOO_LONG:'Domain name too long. It should be no more than 255 chars.',LABEL_STARTS_WITH_DASH:'Domain name label can not start with a dash.',
292
292
  LABEL_ENDS_WITH_DASH:'Domain name label can not end with a dash.',LABEL_TOO_LONG:'Domain name label should be at most 63 chars long.',LABEL_TOO_SHORT:'Domain name label should be at least 1 character long.',LABEL_INVALID_CHARS:'Domain name label can only contain alphanumeric characters or dashes.'},m=l=>{l=H.toASCII(l);if(l.length<1)return'DOMAIN_TOO_SHORT';if(l.length>255)return'DOMAIN_TOO_LONG';l=l.split('.');let W;for(let r=0;r<l.length;++r){if(W=l[r],!W.length)return'LABEL_TOO_SHORT';if(W.length>
293
293
  63)return'LABEL_TOO_LONG';if(W.charAt(0)==='-')return'LABEL_STARTS_WITH_DASH';if(W.charAt(W.length-1)==='-')return'LABEL_ENDS_WITH_DASH';if(!/^[a-z0-9\-_]+$/.test(W))return'LABEL_INVALID_CHARS'}},E=l=>{if(typeof l!='string')throw new TypeError('Domain name must be a string.');let W=l.slice(0).toLowerCase();W.charAt(W.length-1)==='.'&&(W=W.slice(0,W.length-1));var r=m(W);if(r)return{input:l,error:{message:D[r],code:r}};const n={input:l,tld:null,sld:null,domain:null,subdomain:null,listed:!1};var Z=
294
- W.split('.');if(Z[Z.length-1]==='local')return n;l=()=>(/xn--/.test(W)&&(n.domain&&(n.domain=H.toASCII(n.domain)),n.subdomain&&(n.subdomain=H.toASCII(n.subdomain))),n);r=U(W);if(!r)return Z.length<2?n:(n.tld=Z.pop(),n.sld=Z.pop(),n.domain=[n.sld,n.tld].join('.'),Z.length&&(n.subdomain=Z.pop()),l());n.listed=!0;const T=r.suffix.split('.');Z=Z.slice(0,Z.length-T.length);return r.exception&&Z.push(T.shift()),n.tld=T.join('.'),!Z.length||(r.wildcard&&(T.unshift(Z.pop()),n.tld=T.join('.')),!Z.length)||
294
+ W.split('.');if(Z[Z.length-1]==='local')return n;l=()=>(/xn--/.test(W)&&(n.domain&&(n.domain=H.toASCII(n.domain)),n.subdomain&&(n.subdomain=H.toASCII(n.subdomain))),n);r=V(W);if(!r)return Z.length<2?n:(n.tld=Z.pop(),n.sld=Z.pop(),n.domain=[n.sld,n.tld].join('.'),Z.length&&(n.subdomain=Z.pop()),l());n.listed=!0;const U=r.suffix.split('.');Z=Z.slice(0,Z.length-U.length);return r.exception&&Z.push(U.shift()),n.tld=U.join('.'),!Z.length||(r.wildcard&&(U.unshift(Z.pop()),n.tld=U.join('.')),!Z.length)||
295
295
  (n.sld=Z.pop(),n.domain=[n.sld,n.tld].join('.'),Z.length&&(n.subdomain=Z.join('.'))),l()},A=l=>l&&E(l).domain||null,aa=l=>{l=E(l);return!(!l.domain||!l.listed)};f.default={parse:E,get:A,isValid:aa};f.errorCodes=D;f.get=A;f.isValid=aa;f.parse=E;Object.defineProperties(f,{__esModule:{value:!0},[Symbol.toStringTag]:{value:'Module'}})});var _isNode=typeof module!=='undefined'&&module.exports,_psl=null;_isNode&&(_psl=require('psl'));
296
296
  function parseHostname(f){f=String(f==null?'':f).trim().replace(/^[a-z][a-z0-9+.-]*:\/\//i,'');f=f.split(/[\/?#]/)[0];if(f.charAt(0)==='['){var q=f.indexOf(']');q!==-1&&(f=f.slice(1,q))}else q=f.lastIndexOf(':'),q!==-1&&/^\d+$/.test(f.slice(q+1))&&(f=f.slice(0,q));return f}function lastTwoLabels(f){if(!f)return f;var q=f.split('.');return q.length<=2?f:q.slice(-2).join('.')}
297
- function Domain(f,q){var F=this;this.name='Domain';typeof arguments[0]==='function'&&(q=arguments[0],f=void 0);this.getRootDomain=function(H,N){N=parseHostname(H);if(/^\d+\.\d+\.\d+\.\d+$/.test(N))return{value:N,isSLD:!1,isRegisteredTldOrSld:!1};var U=_psl||(typeof window!=='undefined'&&window.psl?window.psl:null);H=null;if(U&&N)try{H=U.parse(N)}catch(m){H=null}var D=U=!1;H&&H.domain?(N=H.domain,U=!!(H.listed&&H.tld&&H.tld.indexOf('.')>-1),D=!!H.listed):N=lastTwoLabels(N);return{value:N,isSLD:U,isRegisteredTldOrSld:D}};
298
- this.updatePSL=function(H){H&&H(!1)};_isNode&&(this.getFQDN=async function(H){var N=require('os'),U=require('dns'),D=require('util');H=typeof H!=='undefined'&&H!==''?H:N.hostname();if(/\./.test(H))return H;H=await D.promisify(U.lookup)(H,{hints:U.ADDRCONFIG||U.V4MAPPED});U=await D.promisify(U.lookupService)(H.address,0);if(!/\./.test(U.hostname))throw Error('[DOMAIN][getFQDN] `'+U.hostname+'` is not a FQDN !');return U.hostname});q&&setTimeout(function(){q(!1,F)},0);return F}
297
+ function Domain(f,q){var F=this;this.name='Domain';typeof arguments[0]==='function'&&(q=arguments[0],f=void 0);this.getRootDomain=function(H,M){M=parseHostname(H);if(/^\d+\.\d+\.\d+\.\d+$/.test(M))return{value:M,isSLD:!1,isRegisteredTldOrSld:!1};var V=_psl||(typeof window!=='undefined'&&window.psl?window.psl:null);H=null;if(V&&M)try{H=V.parse(M)}catch(m){H=null}var D=V=!1;H&&H.domain?(M=H.domain,V=!!(H.listed&&H.tld&&H.tld.indexOf('.')>-1),D=!!H.listed):M=lastTwoLabels(M);return{value:M,isSLD:V,isRegisteredTldOrSld:D}};
298
+ this.updatePSL=function(H){H&&H(!1)};_isNode&&(this.getFQDN=async function(H){var M=require('os'),V=require('dns'),D=require('util');H=typeof H!=='undefined'&&H!==''?H:M.hostname();if(/\./.test(H))return H;H=await D.promisify(V.lookup)(H,{hints:V.ADDRCONFIG||V.V4MAPPED});V=await D.promisify(V.lookupService)(H.address,0);if(!/\./.test(V.hostname))throw Error('[DOMAIN][getFQDN] `'+V.hostname+'` is not a FQDN !');return V.hostname});q&&setTimeout(function(){q(!1,F)},0);return F}
299
299
  _isNode?module.exports=Domain:typeof define==='function'&&define.amd&&define('lib/domain',['vendor/gina/psl'],function(f){_psl=f;return Domain});
300
300
  function LoadingState(){var f=function(H){return!(!H||typeof H.setAttribute!='function'||typeof H.getAttribute!='function')},q=function(H){return f(H)&&H.tagName?/^(button|input)$/i.test(H.tagName)&&/^submit$/i.test(H.type||'')||/^a$/i.test(H.tagName)&&H.getAttribute('data-gina-form-submit')!=null?!0:!1:!1},F=function(){return typeof gina!='undefined'&&gina&&gina.config&&typeof gina.config.loadingAttribute=='string'&&gina.config.loadingAttribute!==''?gina.config.loadingAttribute:'data-gina-loading'};
301
- return{DEFAULT_ATTRIBUTE:'data-gina-loading',getAttributeName:F,arm:function(H){if(!f(H))return!1;H.setAttribute(F(),'true');return!0},disarm:function(H){if(!f(H))return!1;H.setAttribute(F(),'false');return!0},isArmed:function(H){return f(H)?H.getAttribute(F())==='true':!1},resolveTrigger:function(H,N,U){if(!f(H))return null;U=typeof U=='function'?U:q;for(var D=H,m=0;f(D)&&m<10;){if(U(D))return D;if(N&&D===N)break;if(D.tagName&&/^(form|body|html)$/i.test(D.tagName))break;D=D.parentNode;++m}return H}}}
301
+ return{DEFAULT_ATTRIBUTE:'data-gina-loading',getAttributeName:F,arm:function(H){if(!f(H))return!1;H.setAttribute(F(),'true');return!0},disarm:function(H){if(!f(H))return!1;H.setAttribute(F(),'false');return!0},isArmed:function(H){return f(H)?H.getAttribute(F())==='true':!1},resolveTrigger:function(H,M,V){if(!f(H))return null;V=typeof V=='function'?V:q;for(var D=H,m=0;f(D)&&m<10;){if(V(D))return D;if(M&&D===M)break;if(D.tagName&&/^(form|body|html)$/i.test(D.tagName))break;D=D.parentNode;++m}return H}}}
302
302
  typeof module!=='undefined'&&module.exports?module.exports=LoadingState():typeof define==='function'&&define.amd&&define('lib/loading-state',[],function(){return LoadingState()});
303
- define('gina/link','require lib/domain lib/loading-state lib/merge lib/uuid utils/events'.split(' '),function(f){var q=f('lib/domain'),F=null,H=f('lib/loading-state'),N=f('lib/merge'),U=f('lib/uuid');f('utils/events');return function(D){function m(g,V){var fa=n;n=null;fa=fa||R(g);if(!fa)throw Error('[ LinkHandler::request(url, options) ] : no link is registered for url `'+g+'` (never bound, or bound by a later construction \u2014 the published instance walks only its own registrations)');var ua=fa.id,
304
- qa=document.getElementById(ua)||null;if(!qa)throw Error('[ LinkHandler::request(url, options) ] : link `'+ua+'` is registered for url `'+g+'` but its anchor is no longer in the DOM \u2014 registrations are not removed when their element is');var K=++r;if(W&&W.readyState!==4)try{W.abort()}catch(S){}var ha=Z();W=ha;var oa=null;(oa=qa.getAttribute('data-gina-link-event-on-success')||qa.getAttribute('data-gina-link-event-on-error')?!0:!1)&&listenToXhrEvents(fa,'link');V=typeof V=='undefined'?T:N(V,T);
305
- if(/^(http|https):/.test(g)&&!(new RegExp('^'+window.location.protocol+'//'+window.location.host)).test(g)){oa=F.getRootDomain(window.location.hostname).value;var Ja=F.getRootDomain(g).value;oa=oa===Ja?!0:!1;gina.config.envIsDev&&(console.debug('Checking CORS from Popin plugin...TODO - local CORS Proxy'),console.debug('Is request from same domain ? ',oa));oa||(V.withCredentials=!1)}V.url=g;fa&&typeof fa.options!='undefined'&&(V=N(fa.options,V));V.withCredentials?'withCredentials'in ha?V.isSynchrone?
306
- ha.open(V.method,V.url,V.isSynchrone):ha.open(V.method,V.url):typeof XDomainRequest!='undefined'?(ha=new XDomainRequest,ha.open(V.method,V.url)):(ha=null,triggerEvent(gina,qa,'error.'+ua,'CORS not supported: the server is missing the header `"Access-Control-Allow-Credentials": true` ')):V.isSynchrone?ha.open(V.method,V.url,V.isSynchrone):ha.open(V.method,V.url);if(!ha)throw Error('No `xhr` object initiated');V.$link=fa;W=ha;handleXhr(ha,qa,V,f);var O=ha.onreadystatechange;ha.onreadystatechange=function(S){K===
307
- r&&typeof O=='function'&&O.call(this,S)};typeof ha.addEventListener=='function'&&(H.arm(qa),ha.addEventListener('loadend',function(){H.disarm(qa)}));try{ha.send()}catch(S){throw H.isArmed(qa)&&H.disarm(qa),S;}}function E(g,V){if(typeof V!='object')throw Error('`options` must be an object');g.options=N(V,A.options);V=document.getElementById(g.id)||null;if(typeof aa.$links[g.id]=='undefined'){if(Y.indexOf(g.id)>-1)throw Error('`link '+g.id+'` already exists !');if(!gina.events[evt]){addListener(gina,
308
- V,evt,function(qa){cancelEvent(qa);qa=x(qa.target.id);var K=qa.url;typeof qa.options.isSynchrone=='undefined'&&(qa.options.isSynchrone=!1);typeof qa.options.withCredentials=='undefined'&&(qa.options.withCredentials=!1);n=qa;m(K,qa.options)});var fa=V.childNodes,ua=0;lLen=fa.length;if(lLen>0)for(;ua<lLen;++ua)typeof fa[ua].tagName!='undefined'&&y(fa[ua],V,evt)}g.request=m;g.getLinkById=x;g.getLinkByUrl=R;aa.$links[g.id]=g}}this.plugin='link';registerEvents(this.plugin,'loaded ready open close destroy success error progress'.split(' '));
309
- var A={options:{url:void 0,'class':'gina-link-default'},authorizedEvents:['ready','success','error'],events:{}},aa={plugin:this.plugin,id:'gina-links-'+U(),on,eventData:{},$links:{},target:document,isReady:!1,initialized:!1},l={plugin:this.plugin,on,eventData:{},target:document,url:null,request:null,$forms:[]},W=null,r=0,n=null,Z=function(){if(window.XMLHttpRequest)return new XMLHttpRequest;if(window.ActiveXObject)try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(g){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(V){}}return null},
310
- T={url:'',method:'GET',isSynchrone:!1,withCredentials:!0,headers:{'X-Requested-With':'XMLHttpRequest'}},Y=[],v=function(g){return!(!g||!(g.ctrlKey||g.metaKey||g.shiftKey||g.altKey))},L=function(g){return!(!g||('disabled'in g||g.getAttribute('disabled')==null||g.getAttribute('disabled')=='false')&&g.getAttribute('aria-disabled')!='true')},y=function(g,V,fa){addListener(gina,g,'click',function(ua){v(ua)||(cancelEvent(ua),L(V)||triggerEvent(gina,V,fa))})},x=function(g){return typeof aa.$links[g]!='undefined'?
311
- aa.$links[g]:null},R=function(g){var V=null,fa;for(fa in gina.link.$links)if(typeof gina.link.$links[fa].url!='undefined'&&gina.link.$links[fa].url==g){V=gina.link.$links[fa];break}return V},X=function(g,V){typeof g=='undefined'&&(g=aa.target);var fa=null,ua=fa=null,qa=null;qa=qa=null;g=g.getElementsByTagName('a');for(var K=0,ha=g.length;K<ha;++K)if(((fa=g[K].getAttribute('data-gina-link'))||fa=='')&&!/^false$/i.test(fa)&&(fa=g[K],ua={type:'a',method:'GET'},qa=fa.getAttribute('data-gina-link-url'),
312
- ua.url=typeof qa!='undefined'&&qa!=null?qa:fa.getAttribute('href'),fa.getAttribute('download')==null&&fa.getAttribute('target')==null&&!/^#/.test(ua.url||''))){qa=fa.getAttribute('id');if(typeof qa=='undefined'||qa==null||qa==''||/popin\.link/.test(qa))qa='link.click.gina-link-'+aa.id+'-'+U();fa.id=qa;evt=ua.id=qa;fa.setAttribute('id',evt);addListener(gina,fa,'click',function(oa){v(oa)||oa.preventDefault()});qa=null;typeof aa.$links[ua.id]=='undefined'&&(ua.target=fa,qa=N(ua,l),E(qa,V))}};F||new q(function(g,
313
- V){if(g)throw g;F=V});return function(g){aa.bindLinks=X;aa.request=m;aa.getLinkById=x;aa.getLinkByUrl=R;aa.on('init',function(V){evt='click';addListener(gina,aa.target,evt,function(fa){v(fa)||typeof aa.$links[fa.target.id]=='undefined'||(cancelEvent(fa),L(fa.target)||triggerEvent(gina,fa.target,fa.target.id,fa.detail))});typeof g=='undefined'&&(g={});aa.options=g;X(aa.target,g);gina.linkIsBinded=!0;aa.isReady=!0;gina.hasLinkHandler=!0;typeof gina.link!='undefined'&&gina.link||(gina.link=aa);triggerEvent(gina,
314
- aa.target,'ready.'+aa.id,aa)});aa.initialized=!0;return aa}(D)}});function insertAfter(f,q){f.parentNode.insertBefore(q,f.nextSibling)}function getElementsByAttribute(f){for(var q=[],F=0,H=document.getElementsByTagName('*'),N=0,U=H.length;N<U;++N)H[N].getAttribute(f)!==null&&(q[F]=H[N],++F);return q}
315
- (function(f){var q=f.prototype,F=q.parseFromString;try{if((new f).parseFromString('','text/html'))return}catch(H){}q.parseFromString=function(H,N){if(/^\s*text\/html\s*(?:;|$)/i.test(N)){var U=document.implementation.createHTMLDocument('');H.toLowerCase().indexOf('<!doctype')>-1?U.documentElement.innerHTML=H:U.body.innerHTML=H;return U}return F.apply(this,arguments)}})(DOMParser);
316
- function bindRegion(f,q){var F={scripts:0,forms:0,links:0};if(!f||typeof f.getElementsByTagName!='function')return F;q=q||{};for(var H=typeof window!='undefined'&&window.gina?window.gina:null,N=[],U=document.getElementsByTagName('script'),D=f.getElementsByTagName('script'),m=null,E=null,A=0,aa=U.length,l=function(W){return typeof W=='string'?W.replace(/([?&])v=[0-9a-f]{10}(&|(?=#)|$)/,function(r,n,Z){return Z==='&'?n:''}):W};A<aa;++A)U[A].src&&!f.contains(U[A])&&N.push(l(U[A].src));A=0;for(aa=D.length;A<
317
- aa;++A)!(m=D[A].src)||N.indexOf(l(m))>-1||(E=document.createElement('script'),E.src=m,document.head.appendChild(E),N.push(l(m)),F.scripts++);if(q.forms!==!1&&H&&H.hasValidator&&H.validator&&typeof H.validator.bindRegion=='function')try{F.forms=H.validator.bindRegion(f,{deferFormId:q.deferFormId||null})}catch(W){typeof console!='undefined'&&console.warn&&console.warn('[gina][bindRegion] form binding failed: '+(W.message||W))}if(q.links!==!1&&H&&H.hasLinkHandler&&H.link&&typeof H.link.bindLinks=='function')try{H.link.bindLinks(f),
303
+ define('gina/link','require lib/domain lib/loading-state lib/merge lib/uuid utils/events'.split(' '),function(f){var q=f('lib/domain'),F=null,H=f('lib/loading-state'),M=f('lib/merge'),V=f('lib/uuid');f('utils/events');return function(D){function m(g,Q){var ka=n;n=null;ka=ka||S(g);if(!ka)throw Error('[ LinkHandler::request(url, options) ] : no link is registered for url `'+g+'` (never bound, or bound by a later construction \u2014 the published instance walks only its own registrations)');var ua=ka.id,
304
+ pa=document.getElementById(ua)||null;if(!pa)throw Error('[ LinkHandler::request(url, options) ] : link `'+ua+'` is registered for url `'+g+'` but its anchor is no longer in the DOM \u2014 registrations are not removed when their element is');var K=++r;if(W&&W.readyState!==4)try{W.abort()}catch(T){}var fa=Z();W=fa;var na=null;(na=pa.getAttribute('data-gina-link-event-on-success')||pa.getAttribute('data-gina-link-event-on-error')?!0:!1)&&listenToXhrEvents(ka,'link');Q=typeof Q=='undefined'?U:M(Q,U);
305
+ if(/^(http|https):/.test(g)&&!(new RegExp('^'+window.location.protocol+'//'+window.location.host)).test(g)){na=F.getRootDomain(window.location.hostname).value;var Ia=F.getRootDomain(g).value;na=na===Ia?!0:!1;gina.config.envIsDev&&(console.debug('Checking CORS from Popin plugin...TODO - local CORS Proxy'),console.debug('Is request from same domain ? ',na));na||(Q.withCredentials=!1)}Q.url=g;ka&&typeof ka.options!='undefined'&&(Q=M(ka.options,Q));Q.withCredentials?'withCredentials'in fa?Q.isSynchrone?
306
+ fa.open(Q.method,Q.url,Q.isSynchrone):fa.open(Q.method,Q.url):typeof XDomainRequest!='undefined'?(fa=new XDomainRequest,fa.open(Q.method,Q.url)):(fa=null,triggerEvent(gina,pa,'error.'+ua,'CORS not supported: the server is missing the header `"Access-Control-Allow-Credentials": true` ')):Q.isSynchrone?fa.open(Q.method,Q.url,Q.isSynchrone):fa.open(Q.method,Q.url);if(!fa)throw Error('No `xhr` object initiated');Q.$link=ka;W=fa;handleXhr(fa,pa,Q,f);var O=fa.onreadystatechange;fa.onreadystatechange=function(T){K===
307
+ r&&typeof O=='function'&&O.call(this,T)};typeof fa.addEventListener=='function'&&(H.arm(pa),fa.addEventListener('loadend',function(){H.disarm(pa)}));try{fa.send()}catch(T){throw H.isArmed(pa)&&H.disarm(pa),T;}}function E(g,Q){if(typeof Q!='object')throw Error('`options` must be an object');g.options=M(Q,A.options);Q=document.getElementById(g.id)||null;if(typeof aa.$links[g.id]=='undefined'){if(Y.indexOf(g.id)>-1)throw Error('`link '+g.id+'` already exists !');if(!gina.events[evt]){addListener(gina,
308
+ Q,evt,function(pa){cancelEvent(pa);pa=x(pa.target.id);var K=pa.url;typeof pa.options.isSynchrone=='undefined'&&(pa.options.isSynchrone=!1);typeof pa.options.withCredentials=='undefined'&&(pa.options.withCredentials=!1);n=pa;m(K,pa.options)});var ka=Q.childNodes,ua=0;lLen=ka.length;if(lLen>0)for(;ua<lLen;++ua)typeof ka[ua].tagName!='undefined'&&y(ka[ua],Q,evt)}g.request=m;g.getLinkById=x;g.getLinkByUrl=S;aa.$links[g.id]=g}}this.plugin='link';registerEvents(this.plugin,'loaded ready open close destroy success error progress'.split(' '));
309
+ var A={options:{url:void 0,'class':'gina-link-default'},authorizedEvents:['ready','success','error'],events:{}},aa={plugin:this.plugin,id:'gina-links-'+V(),on,eventData:{},$links:{},target:document,isReady:!1,initialized:!1},l={plugin:this.plugin,on,eventData:{},target:document,url:null,request:null,$forms:[]},W=null,r=0,n=null,Z=function(){if(window.XMLHttpRequest)return new XMLHttpRequest;if(window.ActiveXObject)try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(g){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(Q){}}return null},
310
+ U={url:'',method:'GET',isSynchrone:!1,withCredentials:!0,headers:{'X-Requested-With':'XMLHttpRequest'}},Y=[],v=function(g){return!(!g||!(g.ctrlKey||g.metaKey||g.shiftKey||g.altKey))},L=function(g){return!(!g||('disabled'in g||g.getAttribute('disabled')==null||g.getAttribute('disabled')=='false')&&g.getAttribute('aria-disabled')!='true')},y=function(g,Q,ka){addListener(gina,g,'click',function(ua){v(ua)||(cancelEvent(ua),L(Q)||triggerEvent(gina,Q,ka))})},x=function(g){return typeof aa.$links[g]!='undefined'?
311
+ aa.$links[g]:null},S=function(g){var Q=null,ka;for(ka in gina.link.$links)if(typeof gina.link.$links[ka].url!='undefined'&&gina.link.$links[ka].url==g){Q=gina.link.$links[ka];break}return Q},X=function(g,Q){typeof g=='undefined'&&(g=aa.target);var ka=null,ua=ka=null,pa=null;pa=pa=null;g=g.getElementsByTagName('a');for(var K=0,fa=g.length;K<fa;++K)if(((ka=g[K].getAttribute('data-gina-link'))||ka=='')&&!/^false$/i.test(ka)&&(ka=g[K],ua={type:'a',method:'GET'},pa=ka.getAttribute('data-gina-link-url'),
312
+ ua.url=typeof pa!='undefined'&&pa!=null?pa:ka.getAttribute('href'),ka.getAttribute('download')==null&&ka.getAttribute('target')==null&&!/^#/.test(ua.url||''))){pa=ka.getAttribute('id');if(typeof pa=='undefined'||pa==null||pa==''||/popin\.link/.test(pa))pa='link.click.gina-link-'+aa.id+'-'+V();ka.id=pa;evt=ua.id=pa;ka.setAttribute('id',evt);addListener(gina,ka,'click',function(na){v(na)||na.preventDefault()});pa=null;typeof aa.$links[ua.id]=='undefined'&&(ua.target=ka,pa=M(ua,l),E(pa,Q))}};F||new q(function(g,
313
+ Q){if(g)throw g;F=Q});return function(g){aa.bindLinks=X;aa.request=m;aa.getLinkById=x;aa.getLinkByUrl=S;aa.on('init',function(Q){evt='click';addListener(gina,aa.target,evt,function(ka){v(ka)||typeof aa.$links[ka.target.id]=='undefined'||(cancelEvent(ka),L(ka.target)||triggerEvent(gina,ka.target,ka.target.id,ka.detail))});typeof g=='undefined'&&(g={});aa.options=g;X(aa.target,g);gina.linkIsBinded=!0;aa.isReady=!0;gina.hasLinkHandler=!0;typeof gina.link!='undefined'&&gina.link||(gina.link=aa);triggerEvent(gina,
314
+ aa.target,'ready.'+aa.id,aa)});aa.initialized=!0;return aa}(D)}});function insertAfter(f,q){f.parentNode.insertBefore(q,f.nextSibling)}function getElementsByAttribute(f){for(var q=[],F=0,H=document.getElementsByTagName('*'),M=0,V=H.length;M<V;++M)H[M].getAttribute(f)!==null&&(q[F]=H[M],++F);return q}
315
+ (function(f){var q=f.prototype,F=q.parseFromString;try{if((new f).parseFromString('','text/html'))return}catch(H){}q.parseFromString=function(H,M){if(/^\s*text\/html\s*(?:;|$)/i.test(M)){var V=document.implementation.createHTMLDocument('');H.toLowerCase().indexOf('<!doctype')>-1?V.documentElement.innerHTML=H:V.body.innerHTML=H;return V}return F.apply(this,arguments)}})(DOMParser);
316
+ function bindRegion(f,q){var F={scripts:0,forms:0,links:0};if(!f||typeof f.getElementsByTagName!='function')return F;q=q||{};for(var H=typeof window!='undefined'&&window.gina?window.gina:null,M=[],V=document.getElementsByTagName('script'),D=f.getElementsByTagName('script'),m=null,E=null,A=0,aa=V.length,l=function(W){return typeof W=='string'?W.replace(/([?&])v=[0-9a-f]{10}(&|(?=#)|$)/,function(r,n,Z){return Z==='&'?n:''}):W};A<aa;++A)V[A].src&&!f.contains(V[A])&&M.push(l(V[A].src));A=0;for(aa=D.length;A<
317
+ aa;++A)!(m=D[A].src)||M.indexOf(l(m))>-1||(E=document.createElement('script'),E.src=m,document.head.appendChild(E),M.push(l(m)),F.scripts++);if(q.forms!==!1&&H&&H.hasValidator&&H.validator&&typeof H.validator.bindRegion=='function')try{F.forms=H.validator.bindRegion(f,{deferFormId:q.deferFormId||null})}catch(W){typeof console!='undefined'&&console.warn&&console.warn('[gina][bindRegion] form binding failed: '+(W.message||W))}if(q.links!==!1&&H&&H.hasLinkHandler&&H.link&&typeof H.link.bindLinks=='function')try{H.link.bindLinks(f),
318
318
  F.links=f.querySelectorAll('a[data-gina-link]:not([data-gina-link="false"])').length}catch(W){typeof console!='undefined'&&console.warn&&console.warn('[gina][bindRegion] link binding failed: '+(W.message||W))}return F}define('utils/dom',function(){});function fadeIn(f){var q=.1;f.style.display='block';var F=setInterval(function(){q>=1&&clearInterval(F);f.style.opacity=q;f.style.filter='alpha(opacity='+q*100+')';q+=q*.1},10)}
319
319
  function fadeOut(f){var q=1,F=setInterval(function(){q<=.1&&(clearInterval(F),f.style.display='none');f.style.opacity=q;f.style.filter='alpha(opacity='+q*100+')';q-=q*.1},50)}define('utils/effects',function(){});
320
- function DataHelper(){encodeRFC5987ValueChars=function(F){return encodeURIComponent(F).replace(/['()]/g,escape).replace(/\*/g,'%2A').replace(/%(?:7C|60|5E)/g,unescape)};safeDecodeURIComponent=function(F){try{return decodeURIComponent(F)}catch(H){return F}};safeDecodeURI=function(F){try{return decodeURI(F)}catch(H){return F}};formatDataFromString=function(F){typeof F=='object'&&F!==null?F=JSON.stringify(F):typeof F!='string'&&(F=String(F));a:{var H=F,N=F=null,U=null;if(/^(\{|\[|%7B|%5B)/.test(H)){try{F=
321
- (U=/^(\{|%7B)/.test(H)?!1:!0)?[]:{};/^(%7B|%5B)/.test(H)&&(H=decodeURIComponent(H));/("false"|"true"|"on")/.test(H)&&(H=H.replace(/"false"/g,!1).replace(/"true"/g,!0).replace(/"on"/g,!0));/("null")/i.test(H)&&(H=H.replace(/"null"/ig,null));N=JSON.parse(H);if(Array.isArray(N)){U=0;for(var D=N.length;U<D;++U)F[U]=f(N[U],F);var m=F}else m=f(N,F);var E=m;break a}catch(A){console.error('[365] could not parse body: '+((typeof H=='string'?H.length:-1)+' chars ('+(A&&A.name?A.name:'Error')+'), leading ')+
322
- H.charAt(0))}E=void 0}else{F={};E=H.split(/&/g);m=0;for(D=E.length;m<D;++m)if(E[m]&&(N=E[m].indexOf('='),!(N<0)&&(H=safeDecodeURIComponent(E[m].substring(0,N)),N=safeDecodeURIComponent(E[m].substring(N+1)),H!=='__proto__'&&H!=='constructor'&&H!=='prototype'))){if(/^[\{\[]/.test(N))try{N=JSON.parse(N)}catch(A){}/^(.*)\[(.*)\]/.test(H)?(H=H.replace(/\]/g,'').split(/\[/g),F=q(F,H,0,N)):F[H]=N}E=F}}return E};var f=function(F,H){var N=[];H||={};for(let D in F)if(D!=='__proto__'&&D!=='constructor'&&D!==
323
- 'prototype')if(N[0]=D,N[1]=F[D],/^(.*)\[(.*)\]/.test(N[0])){var U=N[0].replace(/\]/g,'').split(/\[/g);H=q(H,U,0,N[1])}else H[N[0]]=N[1];return H},q=function(F,H,N,U){for(var D=0,m=H.length;D<m;++D)if(H[D]==='__proto__'||H[D]==='constructor'||H[D]==='prototype')return F;for(let E=0,A=H.length;E<A;E++)if(D=H[N],E==N){if(typeof F[H[N]]=='undefined'||typeof F[H[N]]=='string')Array.isArray(F)?(D=~~H[N],F[D]=/^\d+$/.test(H[N+1])?[]:{}):F[H[N]]=/^\d+$/.test(H[N+1])?[]:{};if(N==H.length-1){U=typeof U!='undefined'?
324
- U:'';Array.isArray(F[H[N]])?F[H[N]].push(U):F[H[N]]=U;break}else typeof F[D]=='undefined'&&(F[D]=null),q(F[D],H,N+1,U)}return F};nestBracketNotationKey=q}typeof module!=='undefined'&&module.exports?module.exports=DataHelper:typeof define==='function'&&define.amd&&define('utils/data',[],function(){return DataHelper()});
325
- function ValidatorPlugin(f,q,F,H){function N(a,b){if(!a||typeof a.getAttribute!='function')return!1;var c=a.getAttribute('id');if(c&&/^gina\-upload/i.test(c)||c&&b&&typeof b[c.replace(/\-/g,'.')]!='undefined')return!0;a=a.attributes;b=0;for(c=a?a.length:0;b<c;++b)if(/^data-gina-form-/i.test(a[b].name))return!0;return!1}this.plugin='validator';var U='init ready registered success error beforeswap afterswap oobbeforeswap oobafterswap progress uploadProgress abort submit reset change changed keydown keyup focusout focusin validate validated destroy asyncCompleted'.split(' '),
326
- D=typeof module!=='undefined'&&module.exports?!1:!0,m=null;if(D)require('utils/events'),registerEvents(this.plugin,U),require('utils/dom'),require('utils/effects'),require('utils/data'),m=gina.config.envIsDev;else{if(m=/^true$/i.test(process.env.NODE_ENV_IS_DEV)?!0:!1)delete require.cache[require.resolve('./form-validator')],delete require.cache[require.resolve('../../../../../helpers/data')];require('../../../../../helpers/data')}var E=D?require('lib/uuid'):require('../../../../../lib/uuid'),A=D?
320
+ function DataHelper(){encodeRFC5987ValueChars=function(F){return encodeURIComponent(F).replace(/['()]/g,escape).replace(/\*/g,'%2A').replace(/%(?:7C|60|5E)/g,unescape)};safeDecodeURIComponent=function(F){try{return decodeURIComponent(F)}catch(H){return F}};safeDecodeURI=function(F){try{return decodeURI(F)}catch(H){return F}};formatDataFromString=function(F){typeof F=='object'&&F!==null?F=JSON.stringify(F):typeof F!='string'&&(F=String(F));a:{var H=F,M=F=null,V=null;if(/^(\{|\[|%7B|%5B)/.test(H)){try{F=
321
+ (V=/^(\{|%7B)/.test(H)?!1:!0)?[]:{};/^(%7B|%5B)/.test(H)&&(H=decodeURIComponent(H));/("false"|"true"|"on")/.test(H)&&(H=H.replace(/"false"/g,!1).replace(/"true"/g,!0).replace(/"on"/g,!0));/("null")/i.test(H)&&(H=H.replace(/"null"/ig,null));M=JSON.parse(H);if(Array.isArray(M)){V=0;for(var D=M.length;V<D;++V)F[V]=f(M[V],F);var m=F}else m=f(M,F);var E=m;break a}catch(A){console.error('[365] could not parse body: '+((typeof H=='string'?H.length:-1)+' chars ('+(A&&A.name?A.name:'Error')+'), leading ')+
322
+ H.charAt(0))}E=void 0}else{F={};E=H.split(/&/g);m=0;for(D=E.length;m<D;++m)if(E[m]&&(M=E[m].indexOf('='),!(M<0)&&(H=safeDecodeURIComponent(E[m].substring(0,M)),M=safeDecodeURIComponent(E[m].substring(M+1)),H!=='__proto__'&&H!=='constructor'&&H!=='prototype'))){if(/^[\{\[]/.test(M))try{M=JSON.parse(M)}catch(A){}/^(.*)\[(.*)\]/.test(H)?(H=H.replace(/\]/g,'').split(/\[/g),F=q(F,H,0,M)):F[H]=M}E=F}}return E};var f=function(F,H){var M=[];H||={};for(let D in F)if(D!=='__proto__'&&D!=='constructor'&&D!==
323
+ 'prototype')if(M[0]=D,M[1]=F[D],/^(.*)\[(.*)\]/.test(M[0])){var V=M[0].replace(/\]/g,'').split(/\[/g);H=q(H,V,0,M[1])}else H[M[0]]=M[1];return H},q=function(F,H,M,V){for(var D=0,m=H.length;D<m;++D)if(H[D]==='__proto__'||H[D]==='constructor'||H[D]==='prototype')return F;for(let E=0,A=H.length;E<A;E++)if(D=H[M],E==M){if(typeof F[H[M]]=='undefined'||typeof F[H[M]]=='string')Array.isArray(F)?(D=~~H[M],F[D]=/^\d+$/.test(H[M+1])?[]:{}):F[H[M]]=/^\d+$/.test(H[M+1])?[]:{};if(M==H.length-1){V=typeof V!='undefined'?
324
+ V:'';Array.isArray(F[H[M]])?F[H[M]].push(V):F[H[M]]=V;break}else typeof F[D]=='undefined'&&(F[D]=null),q(F[D],H,M+1,V)}return F};nestBracketNotationKey=q}typeof module!=='undefined'&&module.exports?module.exports=DataHelper:typeof define==='function'&&define.amd&&define('utils/data',[],function(){return DataHelper()});
325
+ function ValidatorPlugin(f,q,F,H){function M(a,b){if(!a||typeof a.getAttribute!='function')return!1;var c=a.getAttribute('id');if(c&&/^gina\-upload/i.test(c)||c&&b&&typeof b[c.replace(/\-/g,'.')]!='undefined')return!0;a=a.attributes;b=0;for(c=a?a.length:0;b<c;++b)if(/^data-gina-form-/i.test(a[b].name))return!0;return!1}this.plugin='validator';var V='init ready registered success error beforeswap afterswap oobbeforeswap oobafterswap progress uploadProgress abort submit reset change changed keydown keyup focusout focusin validate validated destroy asyncCompleted'.split(' '),
326
+ D=typeof module!=='undefined'&&module.exports?!1:!0,m=null;if(D)require('utils/events'),registerEvents(this.plugin,V),require('utils/dom'),require('utils/effects'),require('utils/data'),m=gina.config.envIsDev;else{if(m=/^true$/i.test(process.env.NODE_ENV_IS_DEV)?!0:!1)delete require.cache[require.resolve('./form-validator')],delete require.cache[require.resolve('../../../../../helpers/data')];require('../../../../../helpers/data')}var E=D?require('lib/uuid'):require('../../../../../lib/uuid'),A=D?
327
327
  require('lib/merge'):require('../../../../../lib/merge'),aa=D?require('lib/inherits'):require('../../../../../lib/inherits'),l=D?require('lib/form-validator'):require('./form-validator'),W=D?require('lib/routing'):require('../../../../../lib/routing'),r=D?require('lib/loading-state'):require('../../../../../lib/loading-state'),n={id:'validator-'+E(),plugin:this.plugin,on:D?on:null,eventData:{},target:D?document:null,errors:{},initialized:!1,isReady:!1,rules:{},$forms:{},getFormById:null,validateFormById:null,
328
- setOptions:null,resetErrorsDisplay:null,resetFields:null,setErrorLabels:null,_errorLabelsByCulture:{}},Z={id:null,plugin:this.plugin,on:D?on:null,eventData:{},target:D?document:null,cachedErrors:{},lastFocused:D?[]:null,binded:!1,unbinded:!1,withUserBindings:!1,rules:{},setOptions:null,send:null,isValidating:null,isSubmitting:null,submit:null,destroy:null,resetErrorsDisplay:null,resetFields:null},T={},Y={},v={url:'',method:'GET',isSynchrone:!1,withCredentials:!1,withRateLimit:!0,headers:{'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
328
+ setOptions:null,resetErrorsDisplay:null,resetFields:null,setErrorLabels:null,_errorLabelsByCulture:{}},Z={id:null,plugin:this.plugin,on:D?on:null,eventData:{},target:D?document:null,cachedErrors:{},lastFocused:D?[]:null,binded:!1,unbinded:!1,withUserBindings:!1,rules:{},setOptions:null,send:null,isValidating:null,isSubmitting:null,submit:null,destroy:null,resetErrorsDisplay:null,resetFields:null},U={},Y={},v={url:'',method:'GET',isSynchrone:!1,withCredentials:!1,withRateLimit:!0,headers:{'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
329
329
  'X-Requested-With':'XMLHttpRequest'}},L=function(){if(typeof document==='undefined'||!document||typeof document.cookie!=='string')return null;var a=document.cookie||'';if(!a)return null;a=a.split(';');for(var b=0,c=a.length;b<c;++b){for(var h=a[b];h.charAt(0)===' '||h.charAt(0)==='\t';)h=h.slice(1);var u=h.indexOf('=');if(!(u<0)&&h.slice(0,u)==='gina-csrf-token'){a=h.slice(u+1);try{return decodeURIComponent(a)}catch(z){return a}}}return null},y=function(a){if(typeof a!=='string'||!a)return!1;a=a.toUpperCase();
330
- return a!=='GET'&&a!=='HEAD'&&a!=='OPTIONS'},x=function(a){return a!==null&&typeof a=='object'&&!Array.isArray(a)&&!(a instanceof Date)},R=function(a,b){var c={count:0,map:{}},h=function(e,J,I,Q){for(var pa in I){var Ba=Q.concat(pa),za=J+'.'+pa;x(I[pa])?h(e,za,I[pa],Ba):typeof a[za]=='undefined'&&(a[za]=I[pa],c.map[za]={kind:'nested',rootKey:e,path:Ba},++c.count)}},u=null,z=null;for(u in b)/\[/.test(u)?(z=u.replace(/\[/g,'.').replace(/\]/g,''),typeof a[z]=='undefined'&&(a[z]=b[u],c.map[z]={kind:'bracket',
331
- original:u},++c.count)):x(b[u])&&h(u,u,b[u],[u]);return c},X=function(a,b,c,h){c=typeof c!='undefined'?{id:c}:null;var u={};for(z in b)u[z]=b[z];if(typeof a!='undefined'&&a.count()>0){b=R(u,b);try{yb(a,''),Ab(a)}catch(pa){throw pa;}a=Xb(c,u,null,n.rules,null,h);if(b.count>0&&a&&typeof a.isValid=='function'&&typeof a.error!='undefined'){h=null;c={};for(h in a.error||{})if(u=b.map[h])if(u.kind=='bracket')c[u.original]=a.error[h];else{var z=u.path;u=u.rootKey;for(var e=1,J=z.length;e<J;++e)u+='['+z[e]+
332
- ']';c[u]=a.error[h]}else c[h]=a.error[h];a.error=c;if((c=a.data)&&typeof c=='object')for(h in b.map){u=b.map[h];e=(z=Object.prototype.hasOwnProperty.call(c,h))?c[h]:void 0;delete c[h];u=u.kind=='bracket'?u.original.replace(/\]/g,'').split(/\[/g):u.path;J=u.length-1;for(var I=c,Q=0;Q<J&&I;++Q)I=I[u[Q]];if(I&&typeof I=='object')if(z)I[u[J]]=e;else for(delete I[u[J]],z=J-1;z>=0;--z){e=c;for(J=0;J<z&&e;++J)e=e[u[J]];if(e&&x(e[u[z]])&&Object.keys(e[u[z]]).length===0)delete e[u[z]];else break}}}return a}return new l(u,
333
- void 0,void 0,void 0,h)},g=function(a){v=a=A(a,v);return this},V=function(a){var b=null;if(!n.$forms)throw Error('`$forms` collection not found');if(typeof a=='undefined')throw Error('[ FormValidator::getFormById(formId) ] `formId` is missing');a=a.replace(/#/,'');var c=document.getElementById(a);if(c!=null&&typeof n.$forms[a]=='undefined'){if(!(c instanceof HTMLFormElement))throw Error('[ FormValidator::getFormById(formId) ] `'+a+'` resolves to <'+c.tagName+'>, not a FORM. A non-FORM element shares the same id as the target form \u2014 rename one of them so the id is unique.');
334
- var h,u=typeof(T.count()>0)?T:n.rules;c.getAttribute?(id=c.getAttribute('id')||'form.'+E(),id!==c.getAttribute('id')&&c.setAttribute('id',id)):(id='form.'+E(),c.setAttribute('id',id));c.id=Z.id=id;if(typeof c.id!='undefined'&&c.id!='null'&&c.id!=''){Z.target=c;n.$forms[c.id]=A({},Z);if(h=c.getAttribute('data-gina-form-rule')){h=h.replace(/\-|\//g,'.');if(typeof u[h]=='undefined')throw Error('['+c.id+'] no rule found with key: `null`');h=u[h]}typeof c.id=='string'&&typeof u[c.id.replace(/\-/g,'.')]!=
330
+ return a!=='GET'&&a!=='HEAD'&&a!=='OPTIONS'},x=function(a){return a!==null&&typeof a=='object'&&!Array.isArray(a)&&!(a instanceof Date)},S=function(a,b){var c={count:0,map:{}},h=function(e,J,I,R){for(var oa in I){var Ca=R.concat(oa),za=J+'.'+oa;x(I[oa])?h(e,za,I[oa],Ca):typeof a[za]=='undefined'&&(a[za]=I[oa],c.map[za]={kind:'nested',rootKey:e,path:Ca},++c.count)}},u=null,z=null;for(u in b)/\[/.test(u)?(z=u.replace(/\[/g,'.').replace(/\]/g,''),typeof a[z]=='undefined'&&(a[z]=b[u],c.map[z]={kind:'bracket',
331
+ original:u},++c.count)):x(b[u])&&h(u,u,b[u],[u]);return c},X=function(a,b,c,h){c=typeof c!='undefined'?{id:c}:null;var u={};for(z in b)u[z]=b[z];if(typeof a!='undefined'&&a.count()>0){b=S(u,b);try{zb(a,''),Bb(a)}catch(oa){throw oa;}a=Xb(c,u,null,n.rules,null,h);if(b.count>0&&a&&typeof a.isValid=='function'&&typeof a.error!='undefined'){h=null;c={};for(h in a.error||{})if(u=b.map[h])if(u.kind=='bracket')c[u.original]=a.error[h];else{var z=u.path;u=u.rootKey;for(var e=1,J=z.length;e<J;++e)u+='['+z[e]+
332
+ ']';c[u]=a.error[h]}else c[h]=a.error[h];a.error=c;if((c=a.data)&&typeof c=='object')for(h in b.map){u=b.map[h];e=(z=Object.prototype.hasOwnProperty.call(c,h))?c[h]:void 0;delete c[h];u=u.kind=='bracket'?u.original.replace(/\]/g,'').split(/\[/g):u.path;J=u.length-1;for(var I=c,R=0;R<J&&I;++R)I=I[u[R]];if(I&&typeof I=='object')if(z)I[u[J]]=e;else for(delete I[u[J]],z=J-1;z>=0;--z){e=c;for(J=0;J<z&&e;++J)e=e[u[J]];if(e&&x(e[u[z]])&&Object.keys(e[u[z]]).length===0)delete e[u[z]];else break}}}return a}return new l(u,
333
+ void 0,void 0,void 0,h)},g=function(a){v=a=A(a,v);return this},Q=function(a){var b=null;if(!n.$forms)throw Error('`$forms` collection not found');if(typeof a=='undefined')throw Error('[ FormValidator::getFormById(formId) ] `formId` is missing');a=a.replace(/#/,'');var c=document.getElementById(a);if(c!=null&&typeof n.$forms[a]=='undefined'){if(!(c instanceof HTMLFormElement))throw Error('[ FormValidator::getFormById(formId) ] `'+a+'` resolves to <'+c.tagName+'>, not a FORM. A non-FORM element shares the same id as the target form \u2014 rename one of them so the id is unique.');
334
+ var h,u=typeof(U.count()>0)?U:n.rules;c.getAttribute?(id=c.getAttribute('id')||'form.'+E(),id!==c.getAttribute('id')&&c.setAttribute('id',id)):(id='form.'+E(),c.setAttribute('id',id));c.id=Z.id=id;if(typeof c.id!='undefined'&&c.id!='null'&&c.id!=''){Z.target=c;n.$forms[c.id]=A({},Z);if(h=c.getAttribute('data-gina-form-rule')){h=h.replace(/\-|\//g,'.');if(typeof u[h]=='undefined')throw Error('['+c.id+'] no rule found with key: `null`');h=u[h]}typeof c.id=='string'&&typeof u[c.id.replace(/\-/g,'.')]!=
335
335
  'undefined'?$target=n.$forms[c.id].target:typeof c.id=='object'?(delete n.$forms[c.id],u=c.attributes.getNamedItem('id').nodeValue||'form.'+E(),c.setAttribute('id',u),c.id=u,Z.target=c,n.$forms[u]=A({},Z),$target=n.$forms[u].target):$target=n.$forms[c.id].target;h?Yb($target,h):Yb($target)}}typeof n.$forms[a]!='undefined'&&(n.$forms[a].withUserBindings=!0,b=typeof this.$forms!='undefined'&&typeof this.$forms[a]=='undefined'?this.$forms[a]=n.$forms[a]:n.$forms[a]);if(!b)throw Error('Validator::getFormById(...) exception: could not retrieve form `'+
336
- a+'`');b.binded||(Yb(b.target),b=n.$forms[a]);m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),c={id:a,rules:n.$forms[a].rules},typeof n.$forms[a].errors!='undefined'&&(c.errors=n.$forms[a].errors),window.ginaToolbar.update('forms',c));return b},fa=function(a,b){var c;return a&&a.isOpen?(c=a.id?document.getElementById(a.id):null)&&c.contains(b)?a:null:null},ua=function(a,b,c,h){if(m&&!b&&!a&&typeof gina.popin!='undefined'&&gina.popin&&(a=
337
- gina.popin.getActivePopin(),a||(a=gina.popin.$popins||{},a=(b=gina.popin.activePopinId)&&a[b]?a[b]:null),a))try{console.warn('[FormValidator][popin] the HTML '+h+' of form `#'+c.id+'` is delivered to its own handler: the form is not inside popin `'+a.name+'`, which is '+(a.isOpen?'open (the former routing rule would have replaced its content)':'loading, not open (the former routing rule would have raised a false 422 error)')+'.')}catch(u){}},qa='innerHTML outerHTML textContent beforebegin afterbegin beforeend afterend delete none'.split(' '),
336
+ a+'`');b.binded||(Yb(b.target),b=n.$forms[a]);m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),c={id:a,rules:n.$forms[a].rules},typeof n.$forms[a].errors!='undefined'&&(c.errors=n.$forms[a].errors),window.ginaToolbar.update('forms',c));return b},ka=function(a,b){var c;return a&&a.isOpen?(c=a.id?document.getElementById(a.id):null)&&c.contains(b)?a:null:null},ua=function(a,b,c,h){if(m&&!b&&!a&&typeof gina.popin!='undefined'&&gina.popin&&(a=
337
+ gina.popin.getActivePopin(),a||(a=gina.popin.$popins||{},a=(b=gina.popin.activePopinId)&&a[b]?a[b]:null),a))try{console.warn('[FormValidator][popin] the HTML '+h+' of form `#'+c.id+'` is delivered to its own handler: the form is not inside popin `'+a.name+'`, which is '+(a.isOpen?'open (the former routing rule would have replaced its content)':'loading, not open (the former routing rule would have raised a false 422 error)')+'.')}catch(u){}},pa='innerHTML outerHTML textContent beforebegin afterbegin beforeend afterend delete none'.split(' '),
338
338
  K=function(a,b){b=typeof b=='string'?b.trim():'';var c=null,h=null,u=null,z=null;if(b==='')return{error:'empty value'};if(b==='this')return{target:a};try{if(c=b.match(/^(closest|find|next|previous)(?:\s+(.+))?$/i)){h=c[1].toLowerCase();u=(c[2]||'').trim();if(h==='next'||h==='previous')return{error:'`'+h+'` targeting is reserved and not supported yet'};if(u==='')return{error:'`'+h+'` needs a selector'};z=h==='closest'?a.closest(u):a.querySelector(u)}else z=document.querySelector(b)}catch(e){return{error:'invalid selector `'+
339
- b+'`: '+(e.message||e)}}return z?{target:z}:{error:'no element matches `'+b+'`'}},ha=function(a,b,c,h,u,z,e,J){u={status:422,error:u+': '+e,reason:'targetError',attribute:u,value:z,transportError:!1};J||(a.isSending=!1,a.sent=!1,n.$forms[c]&&(n.$forms[c].isSending=!1,n.$forms[c].sent=!1),G(a));a.eventData.error=u;if(m)try{console.error('[FormValidator][swap] submit of form `#'+c+'` refused \u2014 '+u.error)}catch(I){}triggerEvent(gina,b,'error.'+c,u);h&&triggerEvent(gina,b,'error.'+c+'.hform',u)},
340
- oa=['drop','replace','queue'],Ja=['innerHTML','outerHTML','textContent','delete'],O=new WeakMap,S=new WeakMap,ya=function(a,b){if(m)try{console.warn('[FormValidator][sync] form `#'+a+'`: '+b)}catch(c){}},ka=function(a){a=typeof a=='string'?a.trim().toLowerCase():'';var b;return a===''?{error:'empty value'}:a.indexOf(':')>-1?{error:'`<selector>:<strategy>` keying is not supported \u2014 the key is the resolved `data-gina-form-target`, so there is nothing to name; write the strategy alone'}:/^abort\b/.test(a)?
339
+ b+'`: '+(e.message||e)}}return z?{target:z}:{error:'no element matches `'+b+'`'}},fa=function(a,b,c,h,u,z,e,J){u={status:422,error:u+': '+e,reason:'targetError',attribute:u,value:z,transportError:!1};J||(a.isSending=!1,a.sent=!1,n.$forms[c]&&(n.$forms[c].isSending=!1,n.$forms[c].sent=!1),G(a));a.eventData.error=u;if(m)try{console.error('[FormValidator][swap] submit of form `#'+c+'` refused \u2014 '+u.error)}catch(I){}triggerEvent(gina,b,'error.'+c,u);h&&triggerEvent(gina,b,'error.'+c+'.hform',u)},
340
+ na=['drop','replace','queue'],Ia=['innerHTML','outerHTML','textContent','delete'],O=new WeakMap,T=new WeakMap,ya=function(a,b){if(m)try{console.warn('[FormValidator][sync] form `#'+a+'`: '+b)}catch(c){}},ja=function(a){a=typeof a=='string'?a.trim().toLowerCase():'';var b;return a===''?{error:'empty value'}:a.indexOf(':')>-1?{error:'`<selector>:<strategy>` keying is not supported \u2014 the key is the resolved `data-gina-form-target`, so there is nothing to name; write the strategy alone'}:/^abort\b/.test(a)?
341
341
  {error:'`abort` is not supported \u2014 it means `anything may cancel me`, which fits a disposable GET, not a submit with rules and side effects; use `replace` to let the newer submit take over, or `drop` to yield to the one running'}:(b=a.match(/^(drop|replace|queue)(?:\s+(\S+))?$/))?b[2]?{error:'`'+b[1]+'` takes no modifier (found `'+b[2]+'`) \u2014 the key is the resolved swap target, and one submit waits per region, the most recent one'}:{strategy:b[1]}:{error:'unknown strategy `'+a+'` (one of '+
342
- oa.join(', ')+')'}},Ea=function(a){var b=a.getAttribute('data-gina-form-target');if(b===null)return null;var c=a.getAttribute('data-gina-form-swap');c=c===null?'innerHTML':c.trim();if(Ja.indexOf(c)<0)return null;a=K(a,b);return a.error||!a.target?null:{strategy:'replace',derived:!0,key:a.target,swap:c}},Da=function(a,b){if(!b||!b.xhr)return{action:'proceed',abortPrevious:!1};switch(a.strategy){case 'drop':return{action:'drop'};case 'replace':return{action:'proceed',abortPrevious:!0};case 'queue':return{action:'queue'}}return{action:'proceed',
342
+ na.join(', ')+')'}},Ea=function(a){var b=a.getAttribute('data-gina-form-target');if(b===null)return null;var c=a.getAttribute('data-gina-form-swap');c=c===null?'innerHTML':c.trim();if(Ia.indexOf(c)<0)return null;a=K(a,b);return a.error||!a.target?null:{strategy:'replace',derived:!0,key:a.target,swap:c}},Da=function(a,b){if(!b||!b.xhr)return{action:'proceed',abortPrevious:!1};switch(a.strategy){case 'drop':return{action:'drop'};case 'replace':return{action:'proceed',abortPrevious:!0};case 'queue':return{action:'queue'}}return{action:'proceed',
343
343
  abortPrevious:!1}},wa=function(a,b){a.queue=[b]},Va=function(a){var b=a.getAttribute('data-gina-form-target');if(b===null)return a;b=K(a,b);return b.target?b.target:a},ba=function(a,b){var c=typeof b=='string'?b:'';b=c.split(',');var h=[],u=0;if(c.trim()==='')return{error:'empty value'};for(;u<b.length;++u){c=b[u].trim();if(c==='')return{error:'empty part at position '+(u+1)};var z=K(a,c);if(z.error)return{error:'`'+c+'`: '+z.error};h.indexOf(z.target)<0&&h.push(z.target)}return{elements:h}},Ga=function(a,
344
- b){var c=S.get(a)||0;if(c===0){if(a.hasAttribute('disabled'))return!1;a.setAttribute('disabled','');a.setAttribute('data-gina-disabled-by',b)}S.set(a,c+1);return!0},La=function(a){var b=0;if(a&&a.length)for(;b<a.length;++b){var c=a[b];var h=S.get(c)||0;h>1?S.set(c,h-1):(S['delete'](c),c.getAttribute('data-gina-disabled-by')!==null&&(c.removeAttribute('disabled'),c.removeAttribute('data-gina-disabled-by')))}},ab=function(a,b){if(m&&b)for(var c=0;c<b.length;++c)if(!b[c].swapped&&b[c].reason)try{console.warn('[FormValidator][swap] form `#'+
345
- a+'`: out-of-band element `'+(b[c].id||'(no id)')+'` not swapped \u2014 '+b[c].reason)}catch(h){}},ib=function(a,b,c,h){var u=function(za){var Ma=null;try{Ma=a.getResponseHeader(za)}catch(Qa){Ma=null}return typeof Ma=='string'?Ma.trim():null},z=u('X-Gina-Retarget'),e=u('X-Gina-Reswap');u=u('X-Gina-Reselect');var J=null,I=null;I=!1;var Q=function(za){if(m)try{console.warn('[FormValidator][swap] form `#'+h+'`: '+za)}catch(Ma){}};if(z===null&&e===null&&u===null)return null;J=!1;I='an unknown origin';
346
- try{var pa=window.location.origin,Ba=a.responseURL;typeof pa=='string'&&pa!==''&&pa!=='null'&&typeof Ba=='string'&&Ba!==''&&(I=(new URL(Ba,window.location.href)).origin,J=I===pa)}catch(za){J=!1}if(!J)return J={},z!==null&&(J.retarget={value:z,applied:!1,reason:'crossOrigin'},b.targetAttr='X-Gina-Retarget',b.target=null,Q('`X-Gina-Retarget: '+z+'` refused \u2014 the answer came from '+I+", not from this page's origin; nothing swapped")),e!==null&&(J.reswap={value:e,applied:!1,reason:'crossOrigin'},
347
- Q('`X-Gina-Reswap: '+e+'` ignored \u2014 the answer came from '+I+", not from this page's origin; `"+b.swap+'` kept')),u!==null&&(J.reselect={value:u,applied:!1,reason:'crossOrigin'},Q('`X-Gina-Reselect: '+u+'` ignored \u2014 the answer came from '+I+", not from this page's origin; `"+(b.select||'the whole answer')+'` kept')),b.overrides=J;J={};z!==null&&(I=K(c,z),b.targetAttr='X-Gina-Retarget',I.error?(J.retarget={value:z,applied:!1,reason:I.error},b.target=null,Q('`X-Gina-Retarget: '+z+'` cannot be honoured ('+
348
- I.error+') \u2014 nothing swapped')):(J.retarget={value:z,applied:!0},b.target=I.target));I=!!b.target;e!==null&&(I?qa.indexOf(e)<0?(J.reswap={value:e,applied:!1,reason:'unknown swap strategy `'+e+'` (one of '+qa.join(', ')+')'},Q('`X-Gina-Reswap: '+e+'` ignored \u2014 unknown strategy, `'+b.swap+'` kept')):(J.reswap={value:e,applied:!0},b.swap=e):(J.reswap={value:e,applied:!1,reason:'noTarget'},Q('`X-Gina-Reswap: '+e+'` ignored \u2014 the answer has no swap target')));if(u!==null){if(c=u!=='')try{document.createDocumentFragment().querySelector(u)}catch(za){c=
349
- !1}I?c?(J.reselect={value:u,applied:!0},b.select=u):(J.reselect={value:u,applied:!1,reason:'invalid selector `'+u+'`'},Q('`X-Gina-Reselect: '+u+'` ignored \u2014 invalid selector, `'+(b.select||'the whole answer')+'` kept')):(J.reselect={value:u,applied:!1,reason:'noTarget'},Q('`X-Gina-Reselect: '+u+'` ignored \u2014 the answer has no swap target'))}return b.overrides=J},Ya=function(a,b,c,h,u,z){b=a.swap||'innerHTML';var e=a.target,J=parseXhrHtmlAnswer(z.content),I=null,Q=null,pa=null,Ba=null,za=
350
- pa=!1,Ma={contentType:z.contentType,content:z.content,status:z.status,data:J.data,view:J.view,target:e,swap:b,swapped:!1};a.overrides&&(Ma.overrides=a.overrides);za=function(Qa){if(m)try{console.warn('[FormValidator][swap] form `#'+h+'`: '+Qa)}catch(Ra){}};try{gina&&m&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(J.data&&window.ginaToolbar.update('data-xhr',J.data),J.view&&window.ginaToolbar.update('view-xhr',J.view))}catch(Qa){}typeof z.content=='string'&&z.content.indexOf('data-gina-swap-oob')>
351
- -1&&(I=applyOobSwaps(J.doc,{$target:c,id:h,hFormIsRequired:u,gina}),ab(h,I.list),Ma.oob=I.list,Ma.remainder=J.doc.body.innerHTML,I.rebindSelf&&(a.rebindSelf=!0));if(b==='textContent')I=typeof Ma.remainder=='string'?Ma.remainder:z.content;else if(a.select){try{Q=J.doc.querySelectorAll(a.select)}catch(Qa){Q=[]}if(!Q.length)return za('`data-gina-form-select` matched nothing in the answer (`'+a.select+'`) \u2014 nothing swapped'),Ma;I='';z=0;for(J=Q.length;z<J;++z)I+=Q[z].outerHTML}else I=J.doc.body.innerHTML;
352
- pa=typeof e.isConnected=='boolean'?e.isConnected:document.contains(e);if(!pa)return za('the target captured at submit (`'+a.targetAttr+'`) is no longer in the document \u2014 nothing swapped'),Ma;if(b!=='none'){Q={target:e,content:I,strategy:b,select:a.select};a.overrides&&(Q.overrides=a.overrides);if((pa=triggerEvent(gina,c,'beforeswap.'+h,Q))&&pa.defaultPrevented)return za('the swap was cancelled by a `beforeswap` listener'),Ma;pa&&pa.detail&&typeof pa.detail.content=='string'&&(I=pa.detail.content)}za=
353
- (b==='outerHTML'||b==='delete')&&(e===c||e.contains(c));switch(b){case 'innerHTML':e.innerHTML=I;Ba=e;break;case 'outerHTML':Ba=e.parentNode;e.outerHTML=I;break;case 'textContent':e.textContent=I;break;case 'beforebegin':Ba=e.parentNode;e.insertAdjacentHTML('beforebegin',I);break;case 'afterbegin':e.insertAdjacentHTML('afterbegin',I);Ba=e;break;case 'beforeend':e.insertAdjacentHTML('beforeend',I);Ba=e;break;case 'afterend':Ba=e.parentNode;e.insertAdjacentHTML('afterend',I);break;case 'delete':e.parentNode&&
354
- e.parentNode.removeChild(e)}Ma.swapped=b!=='none';Ba&&typeof Ba.getElementsByTagName=='function'&&bindRegion(Ba,{deferFormId:za?h:null});a.rebindSelf=a.rebindSelf||za;b!=='none'&&(triggerEvent(gina,c,'afterswap.'+h,{target:e,strategy:b,swapped:Ma.swapped}),u&&triggerEvent(gina,c,'afterswap.'+h+'.hform',{target:e,strategy:b,swapped:Ma.swapped}));return Ma},qb=function(a,b){var c=document.getElementById(b);if(typeof a.isConnected=='boolean'?!a.isConnected:!document.contains(a))try{tb(b)}catch(h){delete n.$forms[b]}c&&
355
- c!==a&&/^FORM$/i.test(c.tagName)&&N(c,T)&&Cb.call(n,b)},Cb=function(a,b){var c=typeof(T.count()>0)?T:n.rules;if(!n.$forms)throw Error('`$forms` collection not found');if(typeof a!='undefined'&&typeof n.$forms[a]!='undefined')return n.$forms[a];if(typeof a=='undefined')if(typeof this.id!='undefined'&&this.id!=''&&this.id!=null)a=this.id;else throw Error('[ FormValidator::validateFormById(formId, customRule) ] `formId` is missing');if(typeof a=='string')a=a.replace(/#/,'');else{if(typeof a!='object'||
344
+ b){var c=T.get(a)||0;if(c===0){if(a.hasAttribute('disabled'))return!1;a.setAttribute('disabled','');a.setAttribute('data-gina-disabled-by',b)}T.set(a,c+1);return!0},Ka=function(a){var b=0;if(a&&a.length)for(;b<a.length;++b){var c=a[b];var h=T.get(c)||0;h>1?T.set(c,h-1):(T['delete'](c),c.getAttribute('data-gina-disabled-by')!==null&&(c.removeAttribute('disabled'),c.removeAttribute('data-gina-disabled-by')))}},$a=function(a,b){if(m&&b)for(var c=0;c<b.length;++c)if(!b[c].swapped&&b[c].reason)try{console.warn('[FormValidator][swap] form `#'+
345
+ a+'`: out-of-band element `'+(b[c].id||'(no id)')+'` not swapped \u2014 '+b[c].reason)}catch(h){}},ib=function(a,b,c,h){var u=function(za){var Ma=null;try{Ma=a.getResponseHeader(za)}catch(Ra){Ma=null}return typeof Ma=='string'?Ma.trim():null},z=u('X-Gina-Retarget'),e=u('X-Gina-Reswap');u=u('X-Gina-Reselect');var J=null,I=null;I=!1;var R=function(za){if(m)try{console.warn('[FormValidator][swap] form `#'+h+'`: '+za)}catch(Ma){}};if(z===null&&e===null&&u===null)return null;J=!1;I='an unknown origin';
346
+ try{var oa=window.location.origin,Ca=a.responseURL;typeof oa=='string'&&oa!==''&&oa!=='null'&&typeof Ca=='string'&&Ca!==''&&(I=(new URL(Ca,window.location.href)).origin,J=I===oa)}catch(za){J=!1}if(!J)return J={},z!==null&&(J.retarget={value:z,applied:!1,reason:'crossOrigin'},b.targetAttr='X-Gina-Retarget',b.target=null,R('`X-Gina-Retarget: '+z+'` refused \u2014 the answer came from '+I+", not from this page's origin; nothing swapped")),e!==null&&(J.reswap={value:e,applied:!1,reason:'crossOrigin'},
347
+ R('`X-Gina-Reswap: '+e+'` ignored \u2014 the answer came from '+I+", not from this page's origin; `"+b.swap+'` kept')),u!==null&&(J.reselect={value:u,applied:!1,reason:'crossOrigin'},R('`X-Gina-Reselect: '+u+'` ignored \u2014 the answer came from '+I+", not from this page's origin; `"+(b.select||'the whole answer')+'` kept')),b.overrides=J;J={};z!==null&&(I=K(c,z),b.targetAttr='X-Gina-Retarget',I.error?(J.retarget={value:z,applied:!1,reason:I.error},b.target=null,R('`X-Gina-Retarget: '+z+'` cannot be honoured ('+
348
+ I.error+') \u2014 nothing swapped')):(J.retarget={value:z,applied:!0},b.target=I.target));I=!!b.target;e!==null&&(I?pa.indexOf(e)<0?(J.reswap={value:e,applied:!1,reason:'unknown swap strategy `'+e+'` (one of '+pa.join(', ')+')'},R('`X-Gina-Reswap: '+e+'` ignored \u2014 unknown strategy, `'+b.swap+'` kept')):(J.reswap={value:e,applied:!0},b.swap=e):(J.reswap={value:e,applied:!1,reason:'noTarget'},R('`X-Gina-Reswap: '+e+'` ignored \u2014 the answer has no swap target')));if(u!==null){if(c=u!=='')try{document.createDocumentFragment().querySelector(u)}catch(za){c=
349
+ !1}I?c?(J.reselect={value:u,applied:!0},b.select=u):(J.reselect={value:u,applied:!1,reason:'invalid selector `'+u+'`'},R('`X-Gina-Reselect: '+u+'` ignored \u2014 invalid selector, `'+(b.select||'the whole answer')+'` kept')):(J.reselect={value:u,applied:!1,reason:'noTarget'},R('`X-Gina-Reselect: '+u+'` ignored \u2014 the answer has no swap target'))}return b.overrides=J},Ya=function(a,b,c,h,u,z){b=a.swap||'innerHTML';var e=a.target,J=parseXhrHtmlAnswer(z.content),I=null,R=null,oa=null,Ca=null,za=
350
+ oa=!1,Ma={contentType:z.contentType,content:z.content,status:z.status,data:J.data,view:J.view,target:e,swap:b,swapped:!1};a.overrides&&(Ma.overrides=a.overrides);za=function(Ra){if(m)try{console.warn('[FormValidator][swap] form `#'+h+'`: '+Ra)}catch(Sa){}};try{gina&&m&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(J.data&&window.ginaToolbar.update('data-xhr',J.data),J.view&&window.ginaToolbar.update('view-xhr',J.view))}catch(Ra){}typeof z.content=='string'&&z.content.indexOf('data-gina-swap-oob')>
351
+ -1&&(I=applyOobSwaps(J.doc,{$target:c,id:h,hFormIsRequired:u,gina}),$a(h,I.list),Ma.oob=I.list,Ma.remainder=J.doc.body.innerHTML,I.rebindSelf&&(a.rebindSelf=!0));if(b==='textContent')I=typeof Ma.remainder=='string'?Ma.remainder:z.content;else if(a.select){try{R=J.doc.querySelectorAll(a.select)}catch(Ra){R=[]}if(!R.length)return za('`data-gina-form-select` matched nothing in the answer (`'+a.select+'`) \u2014 nothing swapped'),Ma;I='';z=0;for(J=R.length;z<J;++z)I+=R[z].outerHTML}else I=J.doc.body.innerHTML;
352
+ oa=typeof e.isConnected=='boolean'?e.isConnected:document.contains(e);if(!oa)return za('the target captured at submit (`'+a.targetAttr+'`) is no longer in the document \u2014 nothing swapped'),Ma;if(b!=='none'){R={target:e,content:I,strategy:b,select:a.select};a.overrides&&(R.overrides=a.overrides);if((oa=triggerEvent(gina,c,'beforeswap.'+h,R))&&oa.defaultPrevented)return za('the swap was cancelled by a `beforeswap` listener'),Ma;oa&&oa.detail&&typeof oa.detail.content=='string'&&(I=oa.detail.content)}za=
353
+ (b==='outerHTML'||b==='delete')&&(e===c||e.contains(c));switch(b){case 'innerHTML':e.innerHTML=I;Ca=e;break;case 'outerHTML':Ca=e.parentNode;e.outerHTML=I;break;case 'textContent':e.textContent=I;break;case 'beforebegin':Ca=e.parentNode;e.insertAdjacentHTML('beforebegin',I);break;case 'afterbegin':e.insertAdjacentHTML('afterbegin',I);Ca=e;break;case 'beforeend':e.insertAdjacentHTML('beforeend',I);Ca=e;break;case 'afterend':Ca=e.parentNode;e.insertAdjacentHTML('afterend',I);break;case 'delete':e.parentNode&&
354
+ e.parentNode.removeChild(e)}Ma.swapped=b!=='none';Ca&&typeof Ca.getElementsByTagName=='function'&&bindRegion(Ca,{deferFormId:za?h:null});a.rebindSelf=a.rebindSelf||za;b!=='none'&&(triggerEvent(gina,c,'afterswap.'+h,{target:e,strategy:b,swapped:Ma.swapped}),u&&triggerEvent(gina,c,'afterswap.'+h+'.hform',{target:e,strategy:b,swapped:Ma.swapped}));return Ma},sb=function(a,b){var c=document.getElementById(b);if(typeof a.isConnected=='boolean'?!a.isConnected:!document.contains(a))try{ub(b)}catch(h){delete n.$forms[b]}c&&
355
+ c!==a&&/^FORM$/i.test(c.tagName)&&M(c,U)&&Cb.call(n,b)},Cb=function(a,b){var c=typeof(U.count()>0)?U:n.rules;if(!n.$forms)throw Error('`$forms` collection not found');if(typeof a!='undefined'&&typeof n.$forms[a]!='undefined')return n.$forms[a];if(typeof a=='undefined')if(typeof this.id!='undefined'&&this.id!=''&&this.id!=null)a=this.id;else throw Error('[ FormValidator::validateFormById(formId, customRule) ] `formId` is missing');if(typeof a=='string')a=a.replace(/#/,'');else{if(typeof a!='object'||
356
356
  Array.isArray(a))throw Error('[ FormValidator::validateFormById(formId[, customRule]) ] `formId` should be a `string`');var h=a.form;a=h.getAttribute('id')||'form.'+E();h.setAttribute('id',a)}var u=document.getElementsByTagName('form');for(var z={},e=0,J=u.length;e<J;++e)h=u[e].getAttribute('id')||null,typeof z[h]=='undefined'?z[h]=!0:typeof n.$forms[h]=='undefined'||n.$forms[h].warned||(gina.popinIsBinded?console.warn('Popin/Validator::bindForm($target, customRule): `'+h+'` is a duplicate form ID. If not fixed, this could lead to an undesirable behaviour.\n Check inside your popin content'):
357
357
  console.warn('Validator::bindForm($target, customRule): `'+h+'` is a duplicate form ID. If not fixed, this could lead to an undesirable behaviour.'),n.$forms[h].warned=!0);if(typeof this.$forms!='undefined'&&typeof n.$forms[a]!='undefined')u=this.$forms[a]=n.$forms[a];else{if((h=document.getElementById(a))&&!(h instanceof HTMLFormElement))throw Error('[ FormValidator::validateFormById(formId) ] `'+a+'` resolves to <'+h.tagName+'>, not a FORM. A non-FORM element shares the same id as the target form \u2014 rename one of them so the id is unique.');
358
358
  Z.id=a;Z.target=h;u=this.$forms[a]=n.$forms[a]=A({},Z);if(typeof b=='undefined')z=typeof u.target!='undefined'&&u.target!==null&&u.target.getAttribute('data-gina-form-rule')?u.target.getAttribute('data-gina-form-rule').replace(/\-|\//g,'.'):a.replace(/\-/g,'.'),typeof c!='undefined'&&(u.rule=wb(z));else if(z=b.replace(/\-|\//g,'.'),typeof c!='undefined')u.rule=wb(z);else throw Error('[ FormValidator::validateFormById(formId, customRule) ] `'+b+'` is not a valid rule');h&&typeof this.isPopinContext!=
359
- 'undefined'&&/true/i.test(this.isPopinContext)&&(h.isPopinContext=this.isPopinContext);h&&!u.binded&&Yb(h,z)}if(!u)throw Error('[ FormValidator::validateFormById(formId, customRule) ] `'+a+'` not found');return u||null},ob=!1,Kb=null,Mb=function(a){Kb&&a&&a.isTrusted&&!ob&&(Kb=null)},pb=function(a){var b=a.form.id||a.form.getAttribute('id'),c=a.name||a.form.getAttribute('name'),h=document.activeElement.name;if(!/^true$/i.test(n.$forms[b].isValidating)){var u=a.parentNode;a=!1;var z=u.getElementsByTagName('div');
360
- /form\-item\-warning/.test(u.className)&&h!=c?u.className=u.className.replace(/form\-item\-warning/,'form-item-error'):!/form\-item\-error/.test(u.className)||h!=c||Kb&&Kb.formId===b&&Kb.elName===c||(u.className=u.className.replace(/form\-item\-error/,'form-item-warning'),a=!0);if(!/^true$/i.test(n.$forms[b].isValidating)||a)for(b=0,c=z.length;b<c;++b)if(/form\-item\-error\-message/.test(z[b].className)){a?(z[b].className+=' hidden',C(z[b])):(z[b].className=z[b].className.replace(/(\s+hidden|hidden)/,
359
+ 'undefined'&&/true/i.test(this.isPopinContext)&&(h.isPopinContext=this.isPopinContext);h&&!u.binded&&Yb(h,z)}if(!u)throw Error('[ FormValidator::validateFormById(formId, customRule) ] `'+a+'` not found');return u||null},qb=!1,Jb=null,Mb=function(a){Jb&&a&&a.isTrusted&&!qb&&(Jb=null)},rb=function(a){var b=a.form.id||a.form.getAttribute('id'),c=a.name||a.form.getAttribute('name'),h=document.activeElement.name;if(!/^true$/i.test(n.$forms[b].isValidating)){var u=a.parentNode;a=!1;var z=u.getElementsByTagName('div');
360
+ /form\-item\-warning/.test(u.className)&&h!=c?u.className=u.className.replace(/form\-item\-warning/,'form-item-error'):!/form\-item\-error/.test(u.className)||h!=c||Jb&&Jb.formId===b&&Jb.elName===c||(u.className=u.className.replace(/form\-item\-error/,'form-item-warning'),a=!0);if(!/^true$/i.test(n.$forms[b].isValidating)||a)for(b=0,c=z.length;b<c;++b)if(/form\-item\-error\-message/.test(z[b].className)){a?(z[b].className+=' hidden',C(z[b])):(z[b].className=z[b].className.replace(/(\s+hidden|hidden)/,
361
361
  ''),(a=z[b])&&typeof a.style!='undefined'&&a.style&&(a.style.cssText=''));break}}},gb=function(a){if(!a||typeof document==='undefined'||!document||typeof document.getElementById!=='function')return null;var b='gina-aria-live-'+(typeof a.id!='undefined'&&a.id?a.id:a.getAttribute('id')||'form'),c=document.getElementById(b);c?c.parentNode!==a&&(c.ginaA11yFresh=!0,a.appendChild(c)):(c=document.createElement('div'),c.id=b,c.setAttribute('role','status'),c.setAttribute('aria-live','polite'),c.setAttribute('aria-atomic',
362
- 'true'),c.className='gina-visually-hidden',c.style.cssText='position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;',c.ginaA11yFresh=!0,a.appendChild(c));return c},Ia=function(a,b){if(!a||!b)return null;var c=gb(a);if(!c)return null;if(c.ginaA11yFresh)return c.ginaA11yPending=b,c.ginaA11yTimer||(c.ginaA11yTimer=setTimeout(function(){c.ginaA11yTimer=null;c.ginaA11yFresh=!1;Ia(a,c.ginaA11yPending)},0)),c;c&&typeof b=='string'&&(b=
363
- c.textContent===b?b+'\u00a0':b);c.textContent=b;return c},Gb=function(a){var b=a.getElementsByTagName('p');if(!b.length)return a.textContent;a=[];for(var c=0,h=b.length;c<h;++c)a.push(b[c].textContent);return a.join('. ')},Jb={submitting:'Submitting\u2026',uploadStarted:'Upload started',uploadComplete:'Upload complete',fileRemoved:'%s removed',transportError:'Transport failure: the request did not complete',uploadPending:'Waiting for the upload to finish\u2026'},da=function(a){var b=typeof gina!=
364
- 'undefined'&&gina&&gina.config&&gina.config.a11y?gina.config.a11y:null;return b&&typeof b[a]=='string'&&b[a]?b[a]:Jb[a]||''},xa=!1;typeof window!='undefined'&&window.addEventListener&&(window.addEventListener('pagehide',function(){xa=!0},!0),window.addEventListener('pageshow',function(){xa=!1},!0));var ja=function(a,b){return Ia(a,b)},C=function(a){if(!a||typeof a.style=='undefined'||!a.style)return!1;a.style.cssText='display:block !important;position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;';
362
+ 'true'),c.className='gina-visually-hidden',c.style.cssText='position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;',c.ginaA11yFresh=!0,a.appendChild(c));return c},Ha=function(a,b){if(!a||!b)return null;var c=gb(a);if(!c)return null;if(c.ginaA11yFresh)return c.ginaA11yPending=b,c.ginaA11yTimer||(c.ginaA11yTimer=setTimeout(function(){c.ginaA11yTimer=null;c.ginaA11yFresh=!1;Ha(a,c.ginaA11yPending)},0)),c;c&&typeof b=='string'&&(b=
363
+ c.textContent===b?b+'\u00a0':b);c.textContent=b;return c},Fb=function(a){var b=a.getElementsByTagName('p');if(!b.length)return a.textContent;a=[];for(var c=0,h=b.length;c<h;++c)a.push(b[c].textContent);return a.join('. ')},Ib={submitting:'Submitting\u2026',uploadStarted:'Upload started',uploadComplete:'Upload complete',fileRemoved:'%s removed',transportError:'Transport failure: the request did not complete',uploadPending:'Waiting for the upload to finish\u2026'},da=function(a){var b=typeof gina!=
364
+ 'undefined'&&gina&&gina.config&&gina.config.a11y?gina.config.a11y:null;return b&&typeof b[a]=='string'&&b[a]?b[a]:Ib[a]||''},xa=!1;typeof window!='undefined'&&window.addEventListener&&(window.addEventListener('pagehide',function(){xa=!0},!0),window.addEventListener('pageshow',function(){xa=!1},!0));var ia=function(a,b){return Ha(a,b)},C=function(a){if(!a||typeof a.style=='undefined'||!a.style)return!1;a.style.cssText='display:block !important;position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;';
365
365
  return!0},P={},ma=function(a,b,c,h){if(m)var u=null;var z=!1;if(typeof a.dataset.ginaFormIsResetting!='undefined'&&/^(true)$/i.test(a.dataset.ginaFormIsResetting))b={},P={},a.dataset.ginaFormIsResetting=!1;else if(/^(true)$/i.test(a.dataset.ginaFormLiveCheckEnabled)&&typeof h!='undefined'){var e=typeof a.id!='string'?a.getAttribute('id'):a.id;typeof P[e]=='undefined'&&(P[e]={});if(b&&b.count()>0){if(P[e][h]={},P[e][h]=A(b[h],P[e][h]),P[e][h].count()==0&&delete P[e][h],b=P[e],!n.$forms[e].sent||n.$forms[e].isValidating)if(z=
366
366
  !0,e=n.$forms[e].lastFocused,e.length>0&&typeof e[1]!='undefined'&&e[1].name==h||e.length>0&&!e[1]&&document.activeElement.getAttribute('name')!=e[0].name||document.activeElement.getAttribute('name')!=h)z=!1}else typeof P[e][h]!='undefined'&&(delete P[e][h],typeof window.gina.validator.$forms[e].errors!='undefined'&&typeof window.gina.validator.$forms[e].errors[h]!='undefined'&&delete window.gina.validator.$forms[e].errors[h]),(typeof n.$forms!='undefined'&&typeof n.$forms[e]!='undefined'&&typeof n.$forms[e].errors!=
367
- 'undefined'&&n.$forms[e].errors.count()==0||typeof n.$forms!='undefined'&&typeof n.$forms[e]!='undefined'&&!n.$forms[e].errors)&&Zb(a,!0),typeof P[e]!='undefined'&&P[e].count()==0?delete P[e]:b=P[e]}var J=null;e=a.getAttribute('id');c=typeof c!='undefined'?c:{};for(var I=0,Q=a.length;I<Q;++I){var pa=a[I];if(typeof h=='undefined'||h==pa.name){if(/form\-item\-wrapper$/.test(pa.parentNode.className)){var Ba=pa.parentNode.parentNode;var za=pa.parentNode}else Ba=pa.parentNode,za=pa;var Ma=pa.getAttribute('name');
368
- var Qa=pa.getAttribute('data-gina-form-errors');if(Ma){var Ra;if(Ra=za===pa&&pa.type=='hidden')a:{Ra=a;var jb=pa,Wa=jb.name;if(Wa)for(var Ka=0,Xa=Ra.length;Ka<Xa;++Ka){var xb=Ra[Ka];if(xb!==jb&&xb.name==Wa&&(xb.type!='hidden'||/form\-item\-wrapper$/.test(xb.parentNode.className))){Ra=!0;break a}}Ra=!1}if(!Ra){Wa=pa.getAttribute('aria-errormessage');Ra=typeof pa.dataset!='undefined'&&typeof pa.dataset.ginaAriaErrormessage!='undefined'?!0:!1;jb=Wa&&!Ra?!0:!1;if(b&&typeof b[Ma]!='undefined'&&!/(form\-item\-error|form\-item\-warning)/.test(Ba.className)){Ba.className=
369
- z?Ba.className+(Ba.className==''?'form-item-warning':' form-item-warning'):Ba.className+(Ba.className==''?'form-item-error':' form-item-error');J=document.createElement('div');J.className=z?'form-item-error-message hidden':'form-item-error-message';z||pa.type=='hidden'||pa.setAttribute('aria-invalid','true');Qa={};for(var hb in b[Ma])hb!='stack'&&typeof Qa[b[Ma][hb]]=='undefined'&&(Qa[b[Ma][hb]]=!0,Ba=document.createElement('p'),Ba.appendChild(document.createTextNode(b[Ma][hb])),J.appendChild(Ba)),
370
- m&&(u||={},u[Ma]||(u[Ma]={}),u[Ma][hb]=b[Ma][hb]);if(za.type!='hidden'&&!jb){if(!pa.getAttribute('aria-errormessage')||Ra)J.id=('gina-errormessage-'+(e||'form')+'-'+(Ma||'field')).replace(/[^a-zA-Z0-9_-]+/g,'-'),pa.setAttribute('aria-errormessage',J.id),typeof pa.dataset!='undefined'&&(pa.dataset.ginaAriaErrormessage='true');insertAfter(za,J)}!z&&typeof h!='undefined'&&J&&pa!==document.activeElement&&Ia(a,Gb(J))}else if(b&&typeof b[Ma]=='undefined'&&/(form\-item\-error|form\-item\-warning)/.test(Ba.className)||
371
- b&&typeof b[Ma]!='undefined'&&b[Ma].count()==0&&/(form\-item\-error|form\-item\-warning)/.test(Ba.className)){console.debug('[handleErrorsDisplay] Resetting when not in error');Ma=Ba.getElementsByTagName('div');za=0;for(Qa=Ma.length;za<Qa;++za)if(/form\-item\-error\-message/.test(Ma[za].className)){Ma[za].parentElement.removeChild(Ma[za]);break}Ba.className=Ba.className.replace(/(\s+form\-item\-error|form\-item\-error|\s+form\-item\-warning|form\-item\-warning)/,'');pa.type!='hidden'&&pa.setAttribute('aria-invalid',
372
- pa.willValidate&&pa.validity&&!pa.validity.valid?'true':'false');typeof pa.dataset!='undefined'&&typeof pa.dataset.ginaAriaErrormessage!='undefined'&&(pa.removeAttribute('aria-errormessage'),delete pa.dataset.ginaAriaErrormessage)}else if(b.count()>0&&typeof b[Ma]!='undefined'&&Qa){Qa=Ba.getElementsByTagName('div');Ka=0;for(Xa=Qa.length;Ka<Xa;++Ka)if((xb=Qa[Ka].className.match('form-item-error-message'))&&typeof xb.length!='undefined'&&xb.length>0){Qa[Ka].parentElement.removeChild(Qa[Ka]);J=document.createElement('div');
373
- J.setAttribute('class',!document.activeElement||document.activeElement.name!=Ma||Kb&&Kb.formId===e&&Kb.elName===Ma?'form-item-error-message':'form-item-error-message hidden');/hidden/.test(J.className)&&C(J);Ra&&Wa&&(J.id=Wa);!z&&/(\s+form\-item\-warning|form\-item\-warning)/.test(Ba.className)&&(Ba.className=Ba.className.replace(/(\s+form\-item\-warning|form\-item\-warning)/,' form-item-error'));Qa={};for(hb in b[Ma])hb!='stack'&&typeof Qa[b[Ma][hb]]=='undefined'&&(Qa[b[Ma][hb]]=!0,Ba=document.createElement('p'),
374
- Ba.appendChild(document.createTextNode(b[Ma][hb])),J.appendChild(Ba)),m&&(u||={},u[Ma]||(u[Ma]={}),u[Ma][hb]=b[Ma][hb]);break}J&&za.type!='hidden'&&!jb&&insertAfter(za,J);z||pa.type=='hidden'||pa.setAttribute('aria-invalid','true');!z&&typeof h!='undefined'&&J&&pa!==document.activeElement&&Ia(a,Gb(J))}if(typeof h!='undefined'&&h===pa.name)break}}}}u?(triggerEvent(gina,a,'error.'+e,b),m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),a={id:e,
375
- errors:u},window.ginaToolbar.update('forms',a))):m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),a={id:e,errors:{}},D&&window.ginaToolbar.update('forms',a));if(gina&&D&&m&&n.$forms[e].isSubmitting&&/^true$/i.test(n.$forms[e].isSubmitting)&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&c)try{window.ginaToolbar.update('data-xhr',c)}catch(bb){throw bb;}},Aa=function(a){var b=null;typeof a=='undefined'&&typeof this.id!='undefined'&&
367
+ 'undefined'&&n.$forms[e].errors.count()==0||typeof n.$forms!='undefined'&&typeof n.$forms[e]!='undefined'&&!n.$forms[e].errors)&&Zb(a,!0),typeof P[e]!='undefined'&&P[e].count()==0?delete P[e]:b=P[e]}var J=null;e=a.getAttribute('id');c=typeof c!='undefined'?c:{};for(var I=0,R=a.length;I<R;++I){var oa=a[I];if(typeof h=='undefined'||h==oa.name){if(/form\-item\-wrapper$/.test(oa.parentNode.className)){var Ca=oa.parentNode.parentNode;var za=oa.parentNode}else Ca=oa.parentNode,za=oa;var Ma=oa.getAttribute('name');
368
+ var Ra=oa.getAttribute('data-gina-form-errors');if(Ma){var Sa;if(Sa=za===oa&&oa.type=='hidden')a:{Sa=a;var jb=oa,Wa=jb.name;if(Wa)for(var Ja=0,Xa=Sa.length;Ja<Xa;++Ja){var yb=Sa[Ja];if(yb!==jb&&yb.name==Wa&&(yb.type!='hidden'||/form\-item\-wrapper$/.test(yb.parentNode.className))){Sa=!0;break a}}Sa=!1}if(!Sa){Wa=oa.getAttribute('aria-errormessage');Sa=typeof oa.dataset!='undefined'&&typeof oa.dataset.ginaAriaErrormessage!='undefined'?!0:!1;jb=Wa&&!Sa?!0:!1;if(b&&typeof b[Ma]!='undefined'&&!/(form\-item\-error|form\-item\-warning)/.test(Ca.className)){Ca.className=
369
+ z?Ca.className+(Ca.className==''?'form-item-warning':' form-item-warning'):Ca.className+(Ca.className==''?'form-item-error':' form-item-error');J=document.createElement('div');J.className=z?'form-item-error-message hidden':'form-item-error-message';z||oa.type=='hidden'||oa.setAttribute('aria-invalid','true');Ra={};for(var hb in b[Ma])hb!='stack'&&typeof Ra[b[Ma][hb]]=='undefined'&&(Ra[b[Ma][hb]]=!0,Ca=document.createElement('p'),Ca.appendChild(document.createTextNode(b[Ma][hb])),J.appendChild(Ca)),
370
+ m&&(u||={},u[Ma]||(u[Ma]={}),u[Ma][hb]=b[Ma][hb]);if(za.type!='hidden'&&!jb){if(!oa.getAttribute('aria-errormessage')||Sa)J.id=('gina-errormessage-'+(e||'form')+'-'+(Ma||'field')).replace(/[^a-zA-Z0-9_-]+/g,'-'),oa.setAttribute('aria-errormessage',J.id),typeof oa.dataset!='undefined'&&(oa.dataset.ginaAriaErrormessage='true');insertAfter(za,J)}!z&&typeof h!='undefined'&&J&&oa!==document.activeElement&&Ha(a,Fb(J))}else if(b&&typeof b[Ma]=='undefined'&&/(form\-item\-error|form\-item\-warning)/.test(Ca.className)||
371
+ b&&typeof b[Ma]!='undefined'&&b[Ma].count()==0&&/(form\-item\-error|form\-item\-warning)/.test(Ca.className)){console.debug('[handleErrorsDisplay] Resetting when not in error');Ma=Ca.getElementsByTagName('div');za=0;for(Ra=Ma.length;za<Ra;++za)if(/form\-item\-error\-message/.test(Ma[za].className)){Ma[za].parentElement.removeChild(Ma[za]);break}Ca.className=Ca.className.replace(/(\s+form\-item\-error|form\-item\-error|\s+form\-item\-warning|form\-item\-warning)/,'');oa.type!='hidden'&&oa.setAttribute('aria-invalid',
372
+ oa.willValidate&&oa.validity&&!oa.validity.valid?'true':'false');typeof oa.dataset!='undefined'&&typeof oa.dataset.ginaAriaErrormessage!='undefined'&&(oa.removeAttribute('aria-errormessage'),delete oa.dataset.ginaAriaErrormessage)}else if(b.count()>0&&typeof b[Ma]!='undefined'&&Ra){Ra=Ca.getElementsByTagName('div');Ja=0;for(Xa=Ra.length;Ja<Xa;++Ja)if((yb=Ra[Ja].className.match('form-item-error-message'))&&typeof yb.length!='undefined'&&yb.length>0){Ra[Ja].parentElement.removeChild(Ra[Ja]);J=document.createElement('div');
373
+ J.setAttribute('class',!document.activeElement||document.activeElement.name!=Ma||Jb&&Jb.formId===e&&Jb.elName===Ma?'form-item-error-message':'form-item-error-message hidden');/hidden/.test(J.className)&&C(J);Sa&&Wa&&(J.id=Wa);!z&&/(\s+form\-item\-warning|form\-item\-warning)/.test(Ca.className)&&(Ca.className=Ca.className.replace(/(\s+form\-item\-warning|form\-item\-warning)/,' form-item-error'));Ra={};for(hb in b[Ma])hb!='stack'&&typeof Ra[b[Ma][hb]]=='undefined'&&(Ra[b[Ma][hb]]=!0,Ca=document.createElement('p'),
374
+ Ca.appendChild(document.createTextNode(b[Ma][hb])),J.appendChild(Ca)),m&&(u||={},u[Ma]||(u[Ma]={}),u[Ma][hb]=b[Ma][hb]);break}J&&za.type!='hidden'&&!jb&&insertAfter(za,J);z||oa.type=='hidden'||oa.setAttribute('aria-invalid','true');!z&&typeof h!='undefined'&&J&&oa!==document.activeElement&&Ha(a,Fb(J))}if(typeof h!='undefined'&&h===oa.name)break}}}}u?(triggerEvent(gina,a,'error.'+e,b),m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),a={id:e,
375
+ errors:u},window.ginaToolbar.update('forms',a))):m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),a={id:e,errors:{}},D&&window.ginaToolbar.update('forms',a));if(gina&&D&&m&&n.$forms[e].isSubmitting&&/^true$/i.test(n.$forms[e].isSubmitting)&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&c)try{window.ginaToolbar.update('data-xhr',c)}catch(ab){throw ab;}},Ba=function(a){var b=null;typeof a=='undefined'&&typeof this.id!='undefined'&&
376
376
  (a=this.id);/^string$/i.test(typeof a)?(b=a.replace(/#/,''),b=document.getElementById(b)):a instanceof HTMLFormElement?b=a:/^object$/i.test(typeof a)&&(b=a.target);if(!b)throw Error('[ FormValidator::resetErrorsDisplay([ formId | <form> ]) ] `'+a+'` not found');b.dataset.ginaFormIsResetting=!0;ma(b,{});return b},Ua=function(a){if(typeof a=='undefined'){var b=typeof this.target!='undefined'?this.target.getAttribute('id'):this.getAttribute('id');a=n.$forms[b]}else if(typeof a=='string'){b=a.replace(/#/,
377
377
  '');if(typeof n.$forms[b]=='undefined')throw Error('[ FormValidator::resetErrorsDisplay([formId]) ] `'+a+'` not found');a=n.$forms[b]}if(a.fieldsSet){a.isBeingReseted=!0;for(var c in a.fieldsSet){b=document.getElementById(c);var h=b.tagName.toLowerCase();var u=b.tagName;/textarea/i.test(u)?(u=a.fieldsSet[c].defaultValue,b.value=u,triggerEvent(gina,b,'change')):h=='input'?(u=a.fieldsSet[c].defaultValue,/^(checkbox|radio)$/i.test(b.type)?b.checked=a.fieldsSet[c].defaultChecked:/^(checkbox|radio)$/i.test(b.type)||
378
378
  (b.value=u),triggerEvent(gina,b,'change')):h=='select'&&(u=a.fieldsSet[c].selectedIndex||0,b.selectedIndex=u,b.dataset.value=b.options[b.selectedIndex].value,triggerEvent(gina,b,'change'))}delete a.isBeingReseted}return a},cb=function(){var a=null,b=null;typeof this.getAttribute!='undefined'?(a=this.getAttribute('id'),b=this):typeof this.target!='undefined'&&this.target!=null&&typeof this.target.getAttribute!='undefined'&&(a=this.target.getAttribute('id'),b=this.target);if(typeof n.$forms[a]=='undefined')throw Error('[ FormValidator::submit() ] not `$form` binded. Use `FormValidator::getFormById(id)` or `FormValidator::validateFormById(id)` first ');
379
379
  triggerEvent(gina,b,'submit');return this},k=function(a,b,c,h){for(let u=0,z=b.length;u<z;++u)if(b[u]==='__proto__'||b[u]==='constructor'||b[u]==='prototype')return a;for(let u=0,z=b.length;u<z;u++){let e=b[c];if(u==c){if(typeof a[b[c]]=='undefined'||typeof a[b[c]]=='string')Array.isArray(a)?(e=~~b[c],a[e]=/^\d+$/.test(b[c+1])?[]:{}):a[b[c]]=/^\d+$/.test(b[c+1])?[]:{};if(c==b.length-1){h=typeof h!='undefined'?h:'';Array.isArray(a[b[c]])?a[b[c]].push(h):a[b[c]]=h;break}else typeof a[e]=='undefined'&&
380
- (a[e]=null),k(a[e],b,c+1,h)}}return a},w=function(a,b){if(!a||!b||a.loadingTrigger)return!1;a.loadingTrigger=b;return r.arm(b)},G=function(a){if(!a||!a.loadingTrigger)return!1;var b=r.disarm(a.loadingTrigger);a.loadingTrigger=null;return b},ia=function(a,b){if(!a)return!1;b&&(/^A$/i.test(b.tagName)||a&&b&&typeof document!=='undefined'&&document&&document.activeElement===b&&(a.ginaA11yFocusReturn=b),b.setAttribute('aria-busy','true'));if(a.ginaA11yBusy)return!1;a.ginaA11yBusy=!0;a.target&&ja(a.target,
380
+ (a[e]=null),k(a[e],b,c+1,h)}}return a},w=function(a,b){if(!a||!b||a.loadingTrigger)return!1;a.loadingTrigger=b;return r.arm(b)},G=function(a){if(!a||!a.loadingTrigger)return!1;var b=r.disarm(a.loadingTrigger);a.loadingTrigger=null;return b},ha=function(a,b){if(!a)return!1;b&&(/^A$/i.test(b.tagName)||a&&b&&typeof document!=='undefined'&&document&&document.activeElement===b&&(a.ginaA11yFocusReturn=b),b.setAttribute('aria-busy','true'));if(a.ginaA11yBusy)return!1;a.ginaA11yBusy=!0;a.target&&ia(a.target,
381
381
  da('submitting'));return!0},ca=function(a,b){if(!a)return!1;b&&b.removeAttribute('aria-busy');a.ginaA11yBusy=!1;a&&a.ginaA11yFocusReturn?(b=a.ginaA11yFocusReturn,a.ginaA11yFocusReturn=null,typeof document==='undefined'||!document||document.activeElement&&document.activeElement!==document.body||!(typeof b.isConnected=='boolean'?b.isConnected:document.body&&document.body.contains(b))||typeof b.focus!='function'?a=!1:(b.focus(),a=!0)):a=!1;return a},ta=function(a,b){var c=this.target,h=c.getAttribute('id'),
382
- u=n.$forms[h]||this,z=document.getElementById(u.submitTrigger)||null,e=null,J=null,I=null,Q=null,pa={popin:null,target:null,swap:'innerHTML',select:null,targetAttr:null,rebindSelf:!1},Ba=this,za=b,Ma=null,Qa=null;b=typeof b!='undefined'?A(b,v):v;Q=c.getAttribute('data-gina-form-event-on-submit-success')||c.getAttribute('data-gina-form-event-on-submit-error')||c.getAttribute('data-gina-form-event-on-swap')?!0:!1;var Ra=c.getAttribute('data-gina-form-sync');if(Ra!==null||!(/^true$/i.test(b.withRateLimit)&&
383
- typeof u.isSending!='undefined'&&/^true$/i.test(u.isSending)||/^true$/i.test(b.withRateLimit)&&typeof u.sent!='undefined'&&/^true$/i.test(u.sent))){if((Qa=Ra!==null?ka(Ra):Ea(c))&&!Qa.error){var jb=Qa.key||Va(c);Ma=Da(Qa,O.get(jb));if(Ma.action==='drop'){/^true$/i.test(n.$forms[h].isSending)||/^true$/i.test(u.isSending)||G(u);ya(h,'submit dropped (`drop`) \u2014 a request already owns this target');return}if(Ma.action==='queue'){Ma=O.get(jb);wa(Ma,function(){ta.call(Ba,a,za)});ya(h,'submit queued (`queue`) \u2014 a request already owns this target');
384
- return}if(Ma.abortPrevious&&(Ma=O.get(jb))&&Ma.xhr){Ma.ctx&&(Ma.ctx.superseded=!0);try{Ma.xhr.abort()}catch(Na){}ya(h,Qa.derived?'the request that owned this target was superseded \u2014 a `'+Qa.swap+'` answer replaces the region, so the one still on the wire is moot (declare `data-gina-form-sync` to choose otherwise)':'the request that owned this target was superseded (`replace`)');w(n.$forms[h],z)}pa.sync=Qa.strategy;pa.syncDerived=!!Qa.derived;pa.syncKey=jb}jb=/^true$/i.test(n.$forms[h].isSending)||
385
- /^true$/i.test(u.isSending);n.$forms[h].isSending=!0;typeof u.id!='undefined'&&(b.headers['X-Gina-Form-Id']=u.id,typeof gina.forms.rules!='undefined'&&u.rules.count()>0&&typeof u.rules[u.id]!='undefined'&&(b.headers['X-Gina-Form-Rule']=u.id+'@'+gina.config.bundle));typeof u.target.dataset.ginaFormRule!='undefined'&&(b.headers['X-Gina-Form-Rule']=u.target.dataset.ginaFormRule+'@'+gina.config.bundle);pa.popin=typeof gina.popin!='undefined'&&gina.popin&&typeof gina.popin.getPopinContaining=='function'?
386
- gina.popin.getPopinContaining(c):null;pa.popin&&pa.popin.isOpen&&(typeof pa.popin.id!='undefined'&&(b.headers['X-Gina-Popin-Id']=pa.popin.id),typeof pa.popin.name!='undefined'&&(b.headers['X-Gina-Popin-Name']=pa.popin.name));Q&&zb(u);var Wa=c.getAttribute('data-gina-form-target');Ma=c.getAttribute('data-gina-form-swap');var Ka=c.getAttribute('data-gina-form-select');if(Wa!==null){var Xa=K(c,Wa);if(Xa.error){ha(u,c,h,Q,'data-gina-form-target',Wa,Xa.error,jb);return}pa.target=Xa.target;pa.targetAttr=
387
- Wa}if(Ma!==null){Wa=Ma.trim();if(qa.indexOf(Wa)<0){ha(u,c,h,Q,'data-gina-form-swap',Ma,'unknown swap strategy `'+Wa+'` (one of '+qa.join(', ')+')',jb);return}pa.swap=Wa}Ka!==null&&Ka.trim()!==''&&(pa.select=Ka.trim());var xb=/^gina\-upload/i.test(h),hb=c.getAttribute('data-gina-form-event-on-upload-progress')?!0:!1;if(Qa&&Qa.error)ha(u,c,h,Q,'data-gina-form-sync',Ra,Qa.error,jb);else{Ra=c.getAttribute('data-gina-form-disabled-elt');if(Ra!==null){Qa=ba(c,Ra);if(Qa.error){ha(u,c,h,Q,'data-gina-form-disabled-elt',
388
- Ra,Qa.error,jb);return}pa.disabledElts=[];for(Ra=0;Ra<Qa.elements.length;++Ra)Ga(Qa.elements[Ra],h)&&pa.disabledElts.push(Qa.elements[Ra])}Qa=c.getAttribute('action')||b.url;Ra=c.getAttribute('method')||b.method;Ra=Ra.toUpperCase();b.method=Ra;b.url=Qa;var bb=setupXhr();Qa=c.getAttribute('enctype')||b.headers['Content-Type'];if(b.withCredentials){if('withCredentials'in bb)b.isSynchrone?bb.open(b.method,b.url,b.isSynchrone):bb.open(b.method,b.url);else if(typeof XDomainRequest!='undefined')bb=new XDomainRequest,
389
- bb.open(b.method,b.url);else{bb=null;e='CORS not supported: the server is missing the header `"Access-Control-Allow-Credentials": true` ';triggerEvent(gina,c,'error.'+h,e);return}bb.responseType=typeof b.responseType!='undefined'?b.responseType:'';bb.withCredentials=!0}else b.isSynchrone?bb.open(b.method,b.url,b.isSynchrone):bb.open(b.method,b.url);for(var Ob in b.headers)Ob=='Content-Type'&&typeof Qa!='undefined'&&Qa!=null&&Qa!=''||bb.setRequestHeader(Ob,b.headers[Ob]);y(b.method)&&(b=L())&&bb.setRequestHeader('X-Gina-CSRF-Token',
390
- b);if(bb){typeof bb.addEventListener=='function'&&bb.addEventListener('loadend',function(){u.isSending=!1;u.sent=!1;z&&(/^A$/i.test(z.tagName)?z.removeAttribute('aria-disabled'):z.removeAttribute('disabled'));u.target.removeAttribute('data-gina-form-loading');G(u);ca(u,z);La(pa.disabledElts);pa.disabledElts=null;if(pa.syncKey){var Na=O.get(pa.syncKey);if(Na&&Na.xhr===bb&&(Na.xhr=null,Na.ctx=null,!pa.superseded&&Na&&!Na.xhr&&Na.queue&&Na.queue.length)){Na=Na.queue.shift();try{Na()}catch(Fa){if(m)try{console.error('[FormValidator][sync] a queued submit failed: '+
391
- (Fa.message||Fa))}catch(kb){}}}}});var Qb=function(){if(pa.syncKey){var Na=O.get(pa.syncKey);Na||(Na={xhr:null,ctx:null,queue:[]},O.set(pa.syncKey,Na));Na.xhr=bb;Na.ctx=pa}};/^(1|3)$/.test(bb.readyState)&&(u.target.setAttribute('data-gina-form-loading',!0),ia(u,z),z&&(/^A$/i.test(z.tagName)?z.setAttribute('aria-disabled',!0):z.setAttribute('disabled',!0)));bb.onreadystatechange=function(Na){pa.superseded||(u.isSubmitting=!1);/^(1|3)$/.test(bb.readyState)&&(u.target.setAttribute('data-gina-form-loading',
392
- !0),ia(u,z),z&&(/^A$/i.test(z.tagName)?z.setAttribute('aria-disabled',!0):z.setAttribute('disabled',!0)));Na=/Google Inc/i.test(navigator.vendor)?50:0;bb.readyState==2&&(I=/^attachment;/.test(bb.getResponseHeader('Content-Disposition'))?!0:!1,!bb.responseType&&I&&(bb.responseType='blob'));if(bb.readyState==4)if(u.sent=!1,u.isSending=!1,z&&(/^A$/i.test(z.tagName)?z.removeAttribute('aria-disabled'):z.removeAttribute('disabled')),u.target.removeAttribute('data-gina-form-loading'),G(u),ca(u,z),pa.superseded)triggerEvent(gina,
393
- c,'abort.'+h,{status:0,reason:'superseded',sync:pa.sync||null,derived:!!pa.syncDerived});else{var Fa=null,kb=null,Eb=bb.getResponseHeader('Content-Type');if(/^2/.test(bb.status)){try{if(/blob/.test(bb.responseType)||I){if(typeof Eb=='undefined'||Eb==null)Eb='application/octet-stream';kb=new Blob([this.response],{type:Eb});var Db=document.createElement('a');Db.style='display: none';document.body.appendChild(Db);var db=window.URL.createObjectURL(kb);Db.href=db;var ub=bb.getResponseHeader('Content-Disposition');
394
- Db.download=getFilenameFromContentDisposition(ub);Db.click();window.URL.revokeObjectURL(db);e={status:bb.status,statusText:bb.statusText,responseType:kb.type,type:kb.type,size:kb.size}}else e=bb.responseText;/\/json/.test(Eb)&&(e=JSON.parse(bb.responseText),typeof e.status=='undefined'&&(e.status=bb.status),gina&&m&&typeof window.ginaToolbar&&typeof e!='undefined'&&window.ginaToolbar.update('data-xhr',e));if(/\/html/.test(Eb)){e={contentType:Eb,content:bb.responseText};typeof e.status=='undefined'&&
395
- (e.status=bb.status);ib(bb,pa,c,h);if(pa.overrides&&pa.overrides.retarget&&!pa.overrides.retarget.applied){var p=parseXhrHtmlAnswer(e.content);e={contentType:e.contentType,content:e.content,status:e.status,data:p.data,view:p.view,target:null,swap:pa.swap,swapped:!1,reason:'retargetError',overrides:pa.overrides}}else if(pa.target)e=Ya(pa,u,c,h,Q,e);else if(typeof gina.popin!='undefined'&&gina.hasPopinHandler&&(Fa=fa(pa.popin,c),ua(pa.popin,Fa,c,'answer'),Fa)){var M=parseXhrHtmlAnswer(e.content);J=
396
- M.data;XHRView=M.view;try{gina&&m&&typeof window.ginaToolbar&&J&&window.ginaToolbar.update('data-xhr',J),gina&&m&&typeof window.ginaToolbar&&XHRView&&window.ginaToolbar.update('view-xhr',XHRView)}catch(rb){throw rb;}var ea=e.content,na=null;typeof e.content=='string'&&e.content.indexOf('data-gina-swap-oob')>-1&&(na=applyOobSwaps(M.doc,{$target:c,id:h,hFormIsRequired:Q,gina}),ab(h,na.list),ea=M.doc.body.innerHTML,na.rebindSelf&&(pa.rebindSelf=!0));na!==null&&ea.trim()===''||Fa.loadContent(ea);e=J||
397
- {status:bb.status};u.eventData.success=e;triggerEvent(gina,c,'success.'+h,e);Q&&triggerEvent(gina,c,'success.'+h+'.hform',e);pa.rebindSelf&&qb(c,h);return}if(!pa.target&&typeof e.content=='string'&&e.content.indexOf('data-gina-swap-oob')>-1){var Ca=parseXhrHtmlAnswer(e.content),Pa=applyOobSwaps(Ca.doc,{$target:c,id:h,hFormIsRequired:Q,gina});ab(h,Pa.list);e.oob=Pa.list;e.remainder=Ca.doc.body.innerHTML;Pa.rebindSelf&&(pa.rebindSelf=!0)}!pa.target&&pa.overrides&&typeof e.overrides=='undefined'&&(e.overrides=
398
- pa.overrides)}J=u.eventData.success=e;if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&J)try{m&&typeof J!='undefined'&&!/\/html|\/json/.test(Eb)&&window.ginaToolbar.update('data-xhr',J)}catch(rb){throw rb;}/^gina\-upload/i.test(h)&&$a(gina,c,'success',h,e);var Ha=!1;typeof e.isXhrRedirect!='undefined'&&/^true$/i.test(e.isXhrRedirect)&&(Ha=!0);if(typeof gina.popin!='undefined'&&gina.hasPopinHandler&&typeof e.popin!='undefined'||typeof gina.popin!='undefined'&&gina.hasPopinHandler&&
399
- typeof e.location!='undefined'&&Ha){(Fa=pa.popin||(typeof e.popin!='undefined'?gina.popin.getActivePopin():null))||typeof e.popin!='undefined'||ua(pa.popin,Fa,c,'redirect');if(!Fa&&typeof e.popin!='undefined')if(typeof e.popin.name=='undefined'){if(typeof e.popin.close=='undefined')throw Error('To get a `$popin` instance, you need at list a `popin.name`.');}else if(Fa=gina.popin.getPopinByName(e.popin.name),!Fa)throw Error('Popin with name: `'+e.popin.name+'` not found.');if(typeof e.popin!='undefined'&&
400
- typeof e.popin.close!='undefined'){Fa&&(Fa.isRedirecting=!1,Fa.close());var Sa=e.popin.reload?e.popin.reload:!1;e.popin.location||e.popin.url||(delete e.popin,Sa&&(e.popin={reload:Sa}))}if(typeof e.popin!='undefined'&&typeof e.popin.location!='undefined'||typeof e.popin!='undefined'&&typeof e.popin.url!='undefined'||typeof e.location!='undefined'&&Ha){Ha=null;Fa&&(Ha=Fa.name,Fa.isRedirecting=!0);typeof e.popin!='undefined'&&typeof e.popin.target!='undefined'&&(e.popin.target='_'+e.popin.target);na=
401
- e.location||e.popin.location||e.popin.url;M=null;if(typeof e.popin!='undefined'&&typeof e.popin.name!='undefined'&&Ha!=e.popin.name){Fa&&Fa.isOpen&&(Fa.isRedirecting=!1,Fa.close());Ha=e.popin.name;Fa=gina.popin.getPopinByName(Ha);if(!Fa)throw Error('Popin with name `'+Ha+'` not found !');console.debug('Validator::Popin now redirecting [1-c]');M=Fa.load(Fa.name,na,Fa.options)}else Fa&&(console.debug('Validator::Popin now redirecting [1-d]'),Fa&&Fa.isOpen&&Fa.close(),M=Fa.load(Fa.name,na,Fa.options));
402
- if(Fa&&!Fa.isOpen){M&&typeof M.open!='undefined'&&M.open();return}}}triggerEvent(gina,c,'success.'+h,e);Q&&triggerEvent(gina,c,'success.'+h+'.hform',e);pa.rebindSelf&&qb(c,h)}catch(rb){e={status:422,error:rb.message,stack:rb.stack};J=u.eventData.error=e;if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&J)try{m&&typeof J!='undefined'&&window.ginaToolbar.update('data-xhr',J)}catch(Bb){throw Bb;}/^gina\-upload/i.test(h)&&$a(gina,c,'error',h,e);triggerEvent(gina,c,'error.'+h,e);Q&&
403
- triggerEvent(gina,c,'error.'+h+'.hform',e)}if(typeof e!='undefined'&&typeof e.location!='undefined')return window.location.hash='',e.location=/^http/.test(e.location)||/^\//.test(e.location)?e.location:location.protocol+'//'+e.location,e.location.replace(/^http(.*):\d+/,'$1').replace(/^:\/\//,'').split(/\//g)[0]==gina.config.hostname&&gina.config.hostname==window.location.host&&(e.location=location.protocol+e.location.replace(/^http(.*):\d+/,'$1').replace(/^:/,'')),setTimeout(()=>{window.location.href=
404
- e.location},Na)}else if(bb.status!=0)if(e={status:bb.status},/blob/.test(bb.responseType)){kb=new Blob([this.response],{type:'text/plain'});var mb=new FileReader,Hb='';mb.addEventListener('loadend',rb=>{/string/i.test(typeof rb.srcElement.result)?Hb+=rb.srcElement.result:typeof rb.srcElement.result=='object'?e=A(e,rb.srcElement.result):e.message+=rb.srcElement.result;if(/2/.test(mb.readyState)){if(/^(\{|\[)/.test(Hb))try{e=A(e,JSON.parse(Hb))}catch(Bb){e=A(e,Bb)}e.message||delete e.message;J=u.eventData.error=
405
- e;if(gina&&m&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&J)try{window.ginaToolbar.update('data-xhr',J)}catch(Bb){throw Bb;}/^gina\-upload/i.test(h)&&$a(gina,c,'error',h,e);triggerEvent(gina,c,'error.'+h,e);Q&&triggerEvent(gina,c,'error.'+h+'.hform',e)}});mb.readAsText(kb)}else{if(/^(\{|\[)/.test(bb.responseText))try{e=A(JSON.parse(bb.responseText),e)}catch(rb){e=A(rb,e)}else typeof bb.responseText=='object'?e=A(bb.responseText,e):e.message=bb.responseText;if(typeof e!='undefined'&&
406
- typeof e.error!='undefined'&&e.fields&&typeof e.fields=='object'){Na=typeof e.message!='undefined'?e.message:null;Fa={};for(Ha in e.fields)na={},na[Ha]={},na[Ha].isApiError=e.fields[Ha],Na&&!na[Ha].isApiError&&(na[Ha].isApiError=e.error),Fa[Ha]=na[Ha],ma(u.target,na,a,Ha);e.fields=Fa}J=u.eventData.error=e;if(gina&&m&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&J)try{window.ginaToolbar.update('data-xhr',J)}catch(rb){throw rb;}/^gina\-upload/i.test(h)&&$a(gina,c,'error',h,e);triggerEvent(gina,
407
- c,'error.'+h,e);Q&&triggerEvent(gina,c,'error.'+h+'.hform',e)}else if(bb.readyState==4&&bb.status===0){e={status:408,transportError:!0,reason:xa?'unload':'transport',error:da('transportError')};u.eventData.error=e;u.target.removeAttribute('data-gina-form-loading');J=e;if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&J)try{m&&typeof J!='undefined'&&/\/html/.test(Eb)&&window.ginaToolbar.update('data-xhr',J)}catch(rb){throw rb;}/^gina\-upload/i.test(h)&&$a(gina,c,'error',h,e);triggerEvent(gina,
408
- c,'error.'+h,e);Q&&triggerEvent(gina,c,'error.'+h+'.hform',e)}}};bb.onprogress=function(Na){var Fa='0';Na.lengthComputable&&(Fa=Na.loaded/Na.total,Fa=parseInt(Fa*100));Na={status:100,progress:Fa};u.eventData.onprogress=Na;triggerEvent(gina,c,'progress.'+h,Na)};if(typeof bb.upload!='undefined'&&bb.upload){var Rb=[];if(xb&&a instanceof FormData)for([,Nb]of a.entries())Nb instanceof File&&Rb.push(Nb.name);bb.upload.onprogress=function(Na){if(xb){var Fa=null;Na.lengthComputable&&Na.total>0&&(Fa=Na.loaded/
409
- Na.total,Fa=parseInt(Fa*100));Na={status:100,progress:Fa,loaded:Na.loaded,total:Na.total,lengthComputable:Na.lengthComputable,files:Rb};u.eventData.uploadProgress=Na;B(c.uploadProperties?c.uploadProperties.progressContainer:null,Fa===null?'indeterminate':'uploading',Na);triggerEvent(gina,c,'uploadProgress.'+h,Na);hb&&triggerEvent(gina,c,'uploadProgress.'+h+'.hform',Na)}};bb.upload.onloadend=function(){xb&&B(c.uploadProperties?c.uploadProperties.progressContainer:null,'processing')}}bb.ontimeout=function(Na){e=
410
- {status:408,error:'Request Timeout'};u.eventData.ontimeout=e;u.target.removeAttribute('data-gina-form-loading');/^gina\-upload/i.test(h)&&$a(gina,c,'error',h,e);triggerEvent(gina,c,'error.'+h,e);Q&&triggerEvent(gina,c,'error.'+h+'.hform',e)};a||(a=event.detail.data);if(a){var Nb=!1;if(typeof a=='object'){b=[];Ob=0;Ra={};try{if(a instanceof FormData){var eb=event.currentTarget.getAttribute('data-gina-form-upload-group')||'untagged',Za,Lb;for([Za,Lb]of a.entries())Lb instanceof File?(Nb||=!0,b[Ob]=
411
- {key:Za,group:eb,file:Lb,bin:''},++Ob):/^(.*)\[(.*)\]/.test(Za)?Ra=k(Ra,Za.replace(/\]/g,'').split(/\[/g),0,Lb):Ra[Za]=Lb}else a=JSON.stringify(a);if(Nb&&b.length>0){var fb='--ginaWKBoundary'+E();return vb(b,fb,nb(a,fb),0,function(Na,Fa,kb){if(Na)/^gina\-upload/i.test(h)&&$a(gina,c,'error',h,Na),La(pa.disabledElts),pa.disabledElts=null,triggerEvent(gina,c,'error.'+h,Na),Q&&triggerEvent(gina,c,'error.'+h+'.hform',Na);else return kb&&(bb.setRequestHeader('Content-Type','multipart/form-data; boundary='+
412
- fb),bb.send(Fa),Qb(),u.sent=!0,m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.sent||(gina.forms.sent={}),window.ginaToolbar.update('forms',{id:h,sent:Fa}))),!1})}typeof Ra!='undefined'&&Ra.count()>0&&(a=JSON.stringify(Ra))}catch(Na){/^gina\-upload/i.test(h)&&$a(gina,c,'error',h,Na),triggerEvent(gina,c,'error.'+h,Na),Q&&triggerEvent(gina,c,'error.'+h+'.hform',Na)}}Nb||(eb=(eb=c.getAttribute('enctype'))&&eb!=''?eb:typeof a=='string'&&/^[\[{]/.test(a.trim())?'application/json; charset=UTF-8':
413
- Qa,typeof eb!='undefined'&&eb!=null&&eb!=''&&bb.setRequestHeader('Content-Type',eb),bb.send(a),Qb())}else typeof Qa!='undefined'&&Qa!=null&&Qa!=''&&bb.setRequestHeader('Content-Type',Qa),bb.send(),Qb();u.sent=!0;m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.sent||(gina.forms.sent={}),eb={id:h,sent:typeof a=='string'?JSON.parse(a):a},window.ginaToolbar.update('forms',eb))}}}},B=function(a,b,c){if(a&&(a=document.getElementById(a))){var h=/^progress$/i.test(a.tagName);
414
- b=='reset'?(h?(a.removeAttribute('value'),a.removeAttribute('max')):a.textContent='',a.removeAttribute('data-gina-upload-progress'),a.removeAttribute('data-gina-upload-progress-state'),h||(a.removeAttribute('role'),a.removeAttribute('aria-valuemin'),a.removeAttribute('aria-valuemax'),a.removeAttribute('aria-valuenow'))):(a.setAttribute('data-gina-upload-progress-state',b),h||(a.setAttribute('role','progressbar'),a.setAttribute('aria-valuemin','0'),a.setAttribute('aria-valuemax','100')),b!='processing'&&
415
- (b=='complete'?(h?(a.getAttribute('max')||(a.max=100),a.value=a.max):a.textContent='100%',a.setAttribute('data-gina-upload-progress',100),h||a.setAttribute('aria-valuenow','100')):b=='error'?(h?(a.getAttribute('max')||(a.max=100),a.value=0):a.textContent='',a.removeAttribute('data-gina-upload-progress'),h||a.removeAttribute('aria-valuenow')):b!='preparing'&&b!='indeterminate'&&c&&c.progress!==null?(h?(a.max=c.total,a.value=c.loaded):(a.textContent=c.progress+'%',a.setAttribute('aria-valuenow',c.progress)),
416
- a.setAttribute('data-gina-upload-progress',c.progress)):(h&&a.removeAttribute('value'),a.removeAttribute('data-gina-upload-progress'),h||a.removeAttribute('aria-valuenow'))))}},la=function(a,b){a&&(a=document.getElementById(a))&&a.setAttribute('data-gina-upload-dropzone-state',b)},va=function(a){var b=a.getAttribute('data-gina-form-upload-dropzone')||null;if(b){var c=document.getElementById(b);if(c){var h=c.getAttribute('data-gina-upload-dropzone');if(h)h!=a.id&&console.warn('[FormValidator][upload] dropzone `#'+
417
- b+'` is already bound to `#'+h+'`: skipping `#'+a.id+'`');else{c.setAttribute('data-gina-upload-dropzone',a.id);la(b,'idle');var u=0,z=function(e){return(e=e.dataTransfer&&e.dataTransfer.types||null)?Array.prototype.indexOf.call(e,'Files')>-1:!1};addListener(gina,c,'dragenter',function(e){z(e)&&(e.preventDefault(),u++,la(b,'over'))});addListener(gina,c,'dragover',function(e){z(e)&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect='copy'))});addListener(gina,c,'dragleave',function(e){z(e)&&
418
- --u<=0&&(u=0,la(b,'idle'))});addListener(gina,c,'drop',function(e){if(z(e))if(e.preventDefault(),u=0,e=e.dataTransfer.files,e.length){if(e.length>1&&!a.multiple){console.warn('[FormValidator][upload] '+e.length+' files dropped on `#'+b+'` but `#'+a.id+'` is not `multiple`: keeping the first file only');var J=new DataTransfer;J.items.add(e[0]);e=J.files}a.files=e;la(b,'dropped');triggerEvent(gina,a,'change')}else la(b,'idle')})}}else console.warn('[FormValidator][upload] `data-gina-form-upload-dropzone` targets `#'+
419
- b+'` but no such element was found: drag-and-drop stays inactive for `#'+a.id+'`')}},ra=function(a){var b=[];if(!a||!a.elements)return b;a=a.elements;for(var c,h=0,u=a.length;h<u;++h)(c=a[h])&&c.type=='file'&&typeof c.getAttribute=='function'&&(c=c.getAttribute('data-gina-form-virtual'))&&typeof n.$forms[c]!='undefined'&&/^true$/i.test(n.$forms[c].sent)&&b.indexOf(c)<0&&b.push(c);return b},sa=function(a,b){var c=a&&typeof a.getAttribute=='function'?a.getAttribute('id'):null,h=c&&typeof n.$forms[c]!=
420
- 'undefined'?n.$forms[c]:null;if(!h)return!1;var u=ra(a);if(h.stagedUploadWait){if(u.length>0)return!0;h.stagedUploadWait=null;return!1}if(u.length==0)return!1;h.stagedUploadWait={replay:b,failed:!1};ja(a,da('uploadPending'));if(m)try{console.info('[FormValidator][upload] form `#'+c+'`: submit waiting for '+u.length+' staged upload(s) to finish ('+u.join(', ')+')')}catch(z){}return!0},Ta=function(a,b){var c=a&&typeof a.getAttribute=='function'?a.getAttribute('id'):null;(c=c&&typeof n.$forms[c]!='undefined'?
421
- n.$forms[c]:null)&&c.stagedUploadWait&&(b!='success'&&(c.stagedUploadWait.failed=!0),b=function(){var h=a&&typeof a.getAttribute=='function'?a.getAttribute('id'):null;if((h=h&&typeof n.$forms[h]!='undefined'?n.$forms[h]:null)&&h.stagedUploadWait){var u=h.stagedUploadWait,z=typeof a.isConnected!='undefined'&&!a.isConnected;!z&&ra(a).length>0||(h.stagedUploadWait=null,u.failed||z?/^true$/i.test(h.isSending)||G(h):u.replay())}},typeof queueMicrotask=='function'?queueMicrotask(b):Promise.resolve().then(b))},
422
- $a=function(a,b,c,h,u){b=b.uploadProperties||null;if(!b)throw Error('No uploadProperties found !!');B(b.progressContainer||null,c=='success'?'complete':'error');la(b.dropzoneContainer||null,'idle');Ta(b.$form,c);a=document.getElementById(b.uploadTriggerId);h=null;var z=u.files||[],e=null;b.hasPreviewContainer&&(h=document.getElementById(b.previewContainer.id))&&(h.innerHTML='');b.errorField&&(e=document.getElementById(b.errorField));e&&(e.style.display='none');if(e&&c!='success'){var J=u.message||
423
- u.error;e.textContent='';var I=document.createElement('p');I.textContent=J;e.appendChild(I);fadeIn(e);a&&a.form&&Ia(a.form,e.textContent)}else if(c!='success'){if(J=u.message||u.error,J=typeof J=='undefined'||J===null?'':String(J),a&&a.form&&J!=''&&Ia(a.form,J),m)try{console.warn('[FormValidator] upload `#'+b.uploadTriggerId+'`: no error element `#'+b.errorField+'`; the staging error is announced, not shown')}catch(za){}}else for(a&&a.form&&ja(a.form,da('uploadComplete')),c=0,u=z.length;c<u;++c){var Q=
424
- h.id.replace(/\-preview/,'-'+c+'-reset-trigger');e=!1;let za=document.getElementById(Q);var pa=['reset','js-upload-reset'];var Ba=a.getAttribute('data-gina-form-upload-reset-label')||'Reset';za?(/a/i.test(za.tagName)&&(za.href='#'),za.innerHTML&&za.innerHTML!=''||(za.innerHTML=Ba),typeof za.className=='undefined'&&(za.className=''),Q=A(za.className.split(/\s+/g),pa),za.className=Q.join(' ')):(e=!0,za=document.createElement('A'),za.href='#',za.innerHTML=Ba,za.className=pa.join(' '),za.id=Q);/^a$/i.test(za.tagName)&&
425
- (za.setAttribute('role','button'),z[c].originalFilename&&za.setAttribute('aria-label',Ba+' '+z[c].originalFilename));za.style.display='none';typeof z[c].preview=='undefined'&&b.hasPreviewContainer&&/^image/.test(z[c].mime)&&z[c].location!=''&&(Ba=document.createElement('IMG'),Ba.src=z[c].tmpUri,Ba.alt=z[c].originalFilename||'',Ba.style.display='none',Ba.setAttribute('data-upload-original-filename',z[c].originalFilename),Ba.setAttribute('data-upload-reset-link-id',za.id),Q=h.getAttribute('data-preview-max-width')||
426
- null,Ba.width&&Q&&Ba.width>Q?(pa=Ba.width/Q,Ba.width=Q,Ba.height/=pa):!Ba.width&&Q&&(Ba.width=Q),/ul/i.test(b.previewContainer.tagName)?(Q=document.createElement('LI'),Q.className='item',Q.appendChild(Ba),h.appendChild(Q)):h.appendChild(Ba),fadeIn(Ba));Ba=b.uploadFields[c];for(J in Ba)if(J=='name'&&Ba[J].value!=''||!z[c][J]||J=='preview'&&typeof z[c][J]=='undefined'||/(height|width)/i.test(J)&&!/^image/.test(z[c].mime))/(preview|height|width)/i.test(J)&&(Q=document.getElementById(Ba[J].id))&&Q.parentNode.removeChild(Q);
427
- else if(J!='preview'&&(Ba[J].value=z[c][J]),J=='preview')for(I in z[c][J])if(typeof z[c][J][I]!='undefined'&&typeof Ba[J][I]!='undefined'&&(Ba[J][I].value=z[c][J][I]),I=='tmpUri'&&b.hasPreviewContainer){pa=document.createElement('IMG');pa.src=z[c][J].tmpUri;pa.alt=z[c].originalFilename||'';pa.style.display='none';pa.setAttribute('data-upload-original-filename',z[c].originalFilename);pa.setAttribute('data-upload-preview-original-filename',z[c][J].originalFilename);pa.setAttribute('data-upload-reset-link-id',
428
- za.id);if(Q=h.getAttribute('data-preview-max-width')||null)pa.width=Q;/ul/i.test(b.previewContainer.tagName)?(Q=document.createElement('LI'),Q.className='item',Q.appendChild(pa),h.appendChild(Q)):h.appendChild(pa);fadeIn(pa)}b.hasPreviewContainer&&(/ul/i.test(b.previewContainer.tagName)?(Q=document.createElement('LI'),Q.className='item',e&&Q.appendChild(za),h.appendChild(Q)):e&&h.appendChild(za));mc('reset',a,c);fadeIn(za)}},Oa=function(a,b){if(b)try{a.classList.remove(b),a.parentElement&&a.parentElement.classList.remove(b)}catch(c){}/none/i.test(window.getComputedStyle(a).display)&&
429
- (/none/i.test(a.parentElement.style.display)?a.parentElement.style.display='block':a.style.display='block')},lb=function(a,b){console.debug(b+' input files');var c=/reset/i.test(b)?!0:!1,h=document.getElementById(a.id+'-preview'),u=null,z=null;h=Array.prototype.filter.call(h.childNodes,function(Qa){return/img/i.test(Qa.tagName)});z=null;var e=a.customFiles,J=[],I=a.getAttribute('data-gina-form-upload-on-'+b),Q=a.getAttribute('data-gina-form-upload-hidden-class'),pa=0;for(let Qa=0,Ra=h.length;Qa<Ra;Qa++)if(/img/i.test(h[Qa].tagName)){c?
430
- (u=h[Qa].getAttribute('data-upload-original-filename'),J.push(u),(z=h[Qa].getAttribute('data-upload-preview-original-filename'))&&J.push(z)):(u=h[Qa].src.substring(h[Qa].src.lastIndexOf('/')+1),J.push(u));for(let jb=0,Wa=e.length;jb<Wa;jb++)if(e[jb].name==u){z=c?document.getElementById(h[Qa].getAttribute('data-upload-'+b+'-link-id')):document.getElementById(e[jb].deleteLinkId);z.style.display='none';h[Qa].style.display='none';e.splice(jb,1);pa++;a.customFiles=e;c&&(a.value=e.join(', C:\\fakepath\\'));
431
- var Ba=new RegExp('^'+(a.name+'['+jb+']').replace(/\-|\[|\]|\./g,'\\$&'));for(let Ka=0,Xa=a.form.length;Ka<Xa;Ka++){var za=a.form[Ka].dataset.ginaFormUploadIsLocked||!1;if(Ba.test(a.form[Ka].name)&&!/true/i.test(za)&&(a.form[Ka].remove(),Xa--,Ka--,gina&&m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar))try{window.ginaToolbar.update('data-xhr',{files:e})}catch(xb){throw xb;}}za=a.getAttribute('data-gina-form-upload-'+b+'-action');if(!za||typeof za=='undefined'||za==''||/404/.test(za))throw Error('input file `'+
432
- a.id+'` error: `data-gina-form-upload-'+b+'-action` is required. You need to provide a valide url.');(Ba=a.getAttribute('data-gina-form-upload-'+b+'-method'))&&typeof Ba!='undefined'&&Ba!=''?Ba=Ba.toUpperCase():c?Ba='POST':(Ba=J.length>1?'POST':'DELETE',console.warn('`data-gina-form-upload-'+b+'-method` was not defined. Switching to `'+Ba+'` by default.'));var Ma=a.getAttribute('data-gina-form-upload-'+b+'-is-synchrone');if(/null/i.test(Ma)||typeof Ba=='undefined'||Ba=='')Ma=!0;za={url:za,method:Ba,
433
- isSynchrone:Ma,headers:{'Content-Type':'application/json; charset=UTF-8','X-Requested-With':'XMLHttpRequest'}};y(Ba)&&(Ma=L())&&(za.headers['X-Gina-CSRF-Token']=Ma);za=setupXhr(za);/GET|DELETE/i.test(Ba)?za.send():za.send(JSON.stringify({files:J}));Oa(a,Q);if(document.activeElement===z||z.contains(document.activeElement))typeof a.focus=='function'&&a.focus(),document.activeElement!==a&&console.debug('[FormValidator][upload]['+(a.id||'?')+'] '+b+': could not move focus to the file input before removing the '+
434
- b+' control; focus falls back to the document.');a.form&&u&&ja(a.form,da('fileRemoved').replace('%s',function(){return u}));z.remove();h[Qa].remove();break}}pa===0&&h.length>0&&console.warn('[FormValidator][upload]['+(a.id||'?')+'] '+b+': '+h.length+" preview(s) present but none matched the staged input files \u2014 nothing removed, cleanup skipped. Ensure each preview's `data-upload-original-filename` matches a current input file name.");pa>0&&(B(a.getAttribute('data-gina-form-upload-progress')||
435
- (a.id?a.id+'-progress':null),'reset'),la(a.getAttribute('data-gina-form-upload-dropzone')||null,'idle'));if(pa>0&&I)if(/\((.*)\)/.test(I))try{console.warn('[FormValidator][upload] function-call shape not supported on `data-gina-form-upload-on-'+b+'` \u2014 use a bare identifier and register the handler on window: '+I)}catch(Qa){}else if(typeof window[I]==='function')try{window[I]({$upload:a,bindingType:b,files:J})}catch(Qa){console.error('[FormValidator][upload] `data-gina-form-upload-on-'+b+'` callback (`'+
436
- I+'`) threw: ',Qa)}else console.warn('[FormValidator][upload] `data-gina-form-upload-on-'+b+'` callback `'+I+'` was not found on `window`.')},nb=function(a,b){var c='',h,u;for([h,u]of a.entries())u instanceof File||(a=String(h).replace(/\r/g,'%0D').replace(/\n/g,'%0A').replace(/"/g,'%22'),c+='--'+b+'\r\nContent-Disposition: form-data; name="'+a+'"\r\n\r\n'+u+'\r\n');return c},vb=function(a,b,c,h,u){var z=function(I){return String(I).replace(/\r/g,'%0D').replace(/\n/g,'%0A').replace(/"/g,'%22')},e=
437
- [];c&&e.push(c);try{for(c=h;c<a.length;c++){var J=a[c].file.type||'application/octet-stream';e.push('--'+b+'\r\nContent-Disposition: form-data; name="'+z(a[c].key)+'"; group="'+z(a[c].group)+'"; filename="'+z(a[c].file.name)+'"\r\nContent-Type: '+J+'\r\nContent-Length: '+a[c].file.size+'\r\n\r\n');e.push(a[c].file);e.push('\r\n')}}catch(I){return u(I,null,!0)}e.push('--'+b+'--');return u(!1,new Blob(e),!0)},zb=function(a){var b=a.target.getAttribute('data-gina-form-event-on-submit-success')||null;
382
+ u=n.$forms[h]||this,z=document.getElementById(u.submitTrigger)||null,e=null,J=null,I=null,R=null,oa={popin:null,target:null,swap:'innerHTML',select:null,targetAttr:null,rebindSelf:!1},Ca=this,za=b,Ma=null,Ra=null;b=typeof b!='undefined'?A(b,v):v;R=c.getAttribute('data-gina-form-event-on-submit-success')||c.getAttribute('data-gina-form-event-on-submit-error')||c.getAttribute('data-gina-form-event-on-swap')?!0:!1;var Sa=c.getAttribute('data-gina-form-sync');if(Sa!==null||!(/^true$/i.test(b.withRateLimit)&&
383
+ typeof u.isSending!='undefined'&&/^true$/i.test(u.isSending)||/^true$/i.test(b.withRateLimit)&&typeof u.sent!='undefined'&&/^true$/i.test(u.sent))){if((Ra=Sa!==null?ja(Sa):Ea(c))&&!Ra.error){var jb=Ra.key||Va(c);Ma=Da(Ra,O.get(jb));if(Ma.action==='drop'){/^true$/i.test(n.$forms[h].isSending)||/^true$/i.test(u.isSending)||G(u);ya(h,'submit dropped (`drop`) \u2014 a request already owns this target');return}if(Ma.action==='queue'){Ma=O.get(jb);wa(Ma,function(){ta.call(Ca,a,za)});ya(h,'submit queued (`queue`) \u2014 a request already owns this target');
384
+ return}if(Ma.abortPrevious&&(Ma=O.get(jb))&&Ma.xhr){Ma.ctx&&(Ma.ctx.superseded=!0);try{Ma.xhr.abort()}catch(Fa){}ya(h,Ra.derived?'the request that owned this target was superseded \u2014 a `'+Ra.swap+'` answer replaces the region, so the one still on the wire is moot (declare `data-gina-form-sync` to choose otherwise)':'the request that owned this target was superseded (`replace`)');w(n.$forms[h],z)}oa.sync=Ra.strategy;oa.syncDerived=!!Ra.derived;oa.syncKey=jb}jb=/^true$/i.test(n.$forms[h].isSending)||
385
+ /^true$/i.test(u.isSending);n.$forms[h].isSending=!0;typeof u.id!='undefined'&&(b.headers['X-Gina-Form-Id']=u.id,typeof gina.forms.rules!='undefined'&&u.rules.count()>0&&typeof u.rules[u.id]!='undefined'&&(b.headers['X-Gina-Form-Rule']=u.id+'@'+gina.config.bundle));typeof u.target.dataset.ginaFormRule!='undefined'&&(b.headers['X-Gina-Form-Rule']=u.target.dataset.ginaFormRule+'@'+gina.config.bundle);oa.popin=typeof gina.popin!='undefined'&&gina.popin&&typeof gina.popin.getPopinContaining=='function'?
386
+ gina.popin.getPopinContaining(c):null;oa.popin&&oa.popin.isOpen&&(typeof oa.popin.id!='undefined'&&(b.headers['X-Gina-Popin-Id']=oa.popin.id),typeof oa.popin.name!='undefined'&&(b.headers['X-Gina-Popin-Name']=oa.popin.name));R&&Ab(u);var Wa=c.getAttribute('data-gina-form-target');Ma=c.getAttribute('data-gina-form-swap');var Ja=c.getAttribute('data-gina-form-select');if(Wa!==null){var Xa=K(c,Wa);if(Xa.error){fa(u,c,h,R,'data-gina-form-target',Wa,Xa.error,jb);return}oa.target=Xa.target;oa.targetAttr=
387
+ Wa}if(Ma!==null){Wa=Ma.trim();if(pa.indexOf(Wa)<0){fa(u,c,h,R,'data-gina-form-swap',Ma,'unknown swap strategy `'+Wa+'` (one of '+pa.join(', ')+')',jb);return}oa.swap=Wa}Ja!==null&&Ja.trim()!==''&&(oa.select=Ja.trim());var yb=/^gina\-upload/i.test(h),hb=c.getAttribute('data-gina-form-event-on-upload-progress')?!0:!1;if(Ra&&Ra.error)fa(u,c,h,R,'data-gina-form-sync',Sa,Ra.error,jb);else{Sa=c.getAttribute('data-gina-form-disabled-elt');if(Sa!==null){Ra=ba(c,Sa);if(Ra.error){fa(u,c,h,R,'data-gina-form-disabled-elt',
388
+ Sa,Ra.error,jb);return}oa.disabledElts=[];for(Sa=0;Sa<Ra.elements.length;++Sa)Ga(Ra.elements[Sa],h)&&oa.disabledElts.push(Ra.elements[Sa])}Ra=c.getAttribute('action')||b.url;Sa=c.getAttribute('method')||b.method;Sa=Sa.toUpperCase();b.method=Sa;b.url=Ra;var ab=setupXhr();Ra=c.getAttribute('enctype')||b.headers['Content-Type'];if(b.withCredentials){if('withCredentials'in ab)b.isSynchrone?ab.open(b.method,b.url,b.isSynchrone):ab.open(b.method,b.url);else if(typeof XDomainRequest!='undefined')ab=new XDomainRequest,
389
+ ab.open(b.method,b.url);else{ab=null;e='CORS not supported: the server is missing the header `"Access-Control-Allow-Credentials": true` ';triggerEvent(gina,c,'error.'+h,e);return}ab.responseType=typeof b.responseType!='undefined'?b.responseType:'';ab.withCredentials=!0}else b.isSynchrone?ab.open(b.method,b.url,b.isSynchrone):ab.open(b.method,b.url);for(var Ob in b.headers)Ob=='Content-Type'&&typeof Ra!='undefined'&&Ra!=null&&Ra!=''||ab.setRequestHeader(Ob,b.headers[Ob]);y(b.method)&&(b=L())&&ab.setRequestHeader('X-Gina-CSRF-Token',
390
+ b);if(ab){typeof ab.addEventListener=='function'&&ab.addEventListener('loadend',function(){u.isSending=!1;u.sent=!1;z&&(/^A$/i.test(z.tagName)?z.removeAttribute('aria-disabled'):z.removeAttribute('disabled'));u.target.removeAttribute('data-gina-form-loading');G(u);ca(u,z);Ka(oa.disabledElts);oa.disabledElts=null;if(oa.syncKey){var Fa=O.get(oa.syncKey);if(Fa&&Fa.xhr===ab&&(Fa.xhr=null,Fa.ctx=null,!oa.superseded&&Fa&&!Fa.xhr&&Fa.queue&&Fa.queue.length)){Fa=Fa.queue.shift();try{Fa()}catch(Qa){if(m)try{console.error('[FormValidator][sync] a queued submit failed: '+
391
+ (Qa.message||Qa))}catch(Db){}}}}});var Qb=function(){if(oa.syncKey){var Fa=O.get(oa.syncKey);Fa||(Fa={xhr:null,ctx:null,queue:[]},O.set(oa.syncKey,Fa));Fa.xhr=ab;Fa.ctx=oa}};/^(1|3)$/.test(ab.readyState)&&(u.target.setAttribute('data-gina-form-loading',!0),ha(u,z),z&&(/^A$/i.test(z.tagName)?z.setAttribute('aria-disabled',!0):z.setAttribute('disabled',!0)));ab.onreadystatechange=function(Fa){oa.superseded||(u.isSubmitting=!1);/^(1|3)$/.test(ab.readyState)&&(u.target.setAttribute('data-gina-form-loading',
392
+ !0),ha(u,z),z&&(/^A$/i.test(z.tagName)?z.setAttribute('aria-disabled',!0):z.setAttribute('disabled',!0)));Fa=/Google Inc/i.test(navigator.vendor)?50:0;ab.readyState==2&&(I=/^attachment;/.test(ab.getResponseHeader('Content-Disposition'))?!0:!1,!ab.responseType&&I&&(ab.responseType='blob'));if(ab.readyState==4)if(u.sent=!1,u.isSending=!1,z&&(/^A$/i.test(z.tagName)?z.removeAttribute('aria-disabled'):z.removeAttribute('disabled')),u.target.removeAttribute('data-gina-form-loading'),G(u),ca(u,z),oa.superseded)triggerEvent(gina,
393
+ c,'abort.'+h,{status:0,reason:'superseded',sync:oa.sync||null,derived:!!oa.syncDerived});else{var Qa=null,Db=null,xb=ab.getResponseHeader('Content-Type');if(/^2/.test(ab.status)){try{if(/blob/.test(ab.responseType)||I){if(typeof xb=='undefined'||xb==null)xb='application/octet-stream';Db=new Blob([this.response],{type:xb});var bb=document.createElement('a');bb.style='display: none';document.body.appendChild(bb);var tb=window.URL.createObjectURL(Db);bb.href=tb;var p=ab.getResponseHeader('Content-Disposition');
394
+ bb.download=getFilenameFromContentDisposition(p);bb.click();window.URL.revokeObjectURL(tb);e={status:ab.status,statusText:ab.statusText,responseType:Db.type,type:Db.type,size:Db.size}}else e=ab.responseText;/\/json/.test(xb)&&(e=JSON.parse(ab.responseText),typeof e.status=='undefined'&&(e.status=ab.status),gina&&m&&typeof window.ginaToolbar&&typeof e!='undefined'&&window.ginaToolbar.update('data-xhr',e));if(/\/html/.test(xb)){e={contentType:xb,content:ab.responseText};typeof e.status=='undefined'&&
395
+ (e.status=ab.status);ib(ab,oa,c,h);if(oa.overrides&&oa.overrides.retarget&&!oa.overrides.retarget.applied){var N=parseXhrHtmlAnswer(e.content);e={contentType:e.contentType,content:e.content,status:e.status,data:N.data,view:N.view,target:null,swap:oa.swap,swapped:!1,reason:'retargetError',overrides:oa.overrides}}else if(oa.target)e=Ya(oa,u,c,h,R,e);else if(typeof gina.popin!='undefined'&&gina.hasPopinHandler&&(Qa=ka(oa.popin,c),ua(oa.popin,Qa,c,'answer'),Qa)){var ea=parseXhrHtmlAnswer(e.content);J=
396
+ ea.data;XHRView=ea.view;try{gina&&m&&typeof window.ginaToolbar&&J&&window.ginaToolbar.update('data-xhr',J),gina&&m&&typeof window.ginaToolbar&&XHRView&&window.ginaToolbar.update('view-xhr',XHRView)}catch(pb){throw pb;}var sa=e.content,Aa=null;typeof e.content=='string'&&e.content.indexOf('data-gina-swap-oob')>-1&&(Aa=applyOobSwaps(ea.doc,{$target:c,id:h,hFormIsRequired:R,gina}),$a(h,Aa.list),sa=ea.doc.body.innerHTML,Aa.rebindSelf&&(oa.rebindSelf=!0));Aa!==null&&sa.trim()===''||Qa.loadContent(sa);
397
+ e=J||{status:ab.status};u.eventData.success=e;triggerEvent(gina,c,'success.'+h,e);R&&triggerEvent(gina,c,'success.'+h+'.hform',e);oa.rebindSelf&&sb(c,h);return}if(!oa.target&&typeof e.content=='string'&&e.content.indexOf('data-gina-swap-oob')>-1){var Pa=parseXhrHtmlAnswer(e.content),Na=applyOobSwaps(Pa.doc,{$target:c,id:h,hFormIsRequired:R,gina});$a(h,Na.list);e.oob=Na.list;e.remainder=Pa.doc.body.innerHTML;Na.rebindSelf&&(oa.rebindSelf=!0)}!oa.target&&oa.overrides&&typeof e.overrides=='undefined'&&
398
+ (e.overrides=oa.overrides)}J=u.eventData.success=e;if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&J)try{m&&typeof J!='undefined'&&!/\/html|\/json/.test(xb)&&window.ginaToolbar.update('data-xhr',J)}catch(pb){throw pb;}/^gina\-upload/i.test(h)&&Za(gina,c,'success',h,e);var La=!1;typeof e.isXhrRedirect!='undefined'&&/^true$/i.test(e.isXhrRedirect)&&(La=!0);if(typeof gina.popin!='undefined'&&gina.hasPopinHandler&&typeof e.popin!='undefined'||typeof gina.popin!='undefined'&&gina.hasPopinHandler&&
399
+ typeof e.location!='undefined'&&La){(Qa=oa.popin||(typeof e.popin!='undefined'?gina.popin.getActivePopin():null))||typeof e.popin!='undefined'||ua(oa.popin,Qa,c,'redirect');if(!Qa&&typeof e.popin!='undefined')if(typeof e.popin.name=='undefined'){if(typeof e.popin.close=='undefined')throw Error('To get a `$popin` instance, you need at list a `popin.name`.');}else if(Qa=gina.popin.getPopinByName(e.popin.name),!Qa)throw Error('Popin with name: `'+e.popin.name+'` not found.');if(typeof e.popin!='undefined'&&
400
+ typeof e.popin.close!='undefined'){Qa&&(Qa.isRedirecting=!1,Qa.close());var nb=e.popin.reload?e.popin.reload:!1;e.popin.location||e.popin.url||(delete e.popin,nb&&(e.popin={reload:nb}))}if(typeof e.popin!='undefined'&&typeof e.popin.location!='undefined'||typeof e.popin!='undefined'&&typeof e.popin.url!='undefined'||typeof e.location!='undefined'&&La){La=null;Qa&&(La=Qa.name,Qa.isRedirecting=!0);typeof e.popin!='undefined'&&typeof e.popin.target!='undefined'&&(e.popin.target='_'+e.popin.target);Aa=
401
+ e.location||e.popin.location||e.popin.url;ea=null;if(typeof e.popin!='undefined'&&typeof e.popin.name!='undefined'&&La!=e.popin.name){Qa&&Qa.isOpen&&(Qa.isRedirecting=!1,Qa.close());La=e.popin.name;Qa=gina.popin.getPopinByName(La);if(!Qa)throw Error('Popin with name `'+La+'` not found !');console.debug('Validator::Popin now redirecting [1-c]');ea=Qa.load(Qa.name,Aa,Qa.options)}else Qa&&(console.debug('Validator::Popin now redirecting [1-d]'),Qa&&Qa.isOpen&&Qa.close(),ea=Qa.load(Qa.name,Aa,Qa.options));
402
+ if(Qa&&!Qa.isOpen){ea&&typeof ea.open!='undefined'&&ea.open();return}}}triggerEvent(gina,c,'success.'+h,e);R&&triggerEvent(gina,c,'success.'+h+'.hform',e);oa.rebindSelf&&sb(c,h)}catch(pb){e={status:422,error:pb.message,stack:pb.stack};J=u.eventData.error=e;if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&J)try{m&&typeof J!='undefined'&&window.ginaToolbar.update('data-xhr',J)}catch(ob){throw ob;}/^gina\-upload/i.test(h)&&Za(gina,c,'error',h,e);triggerEvent(gina,c,'error.'+h,e);
403
+ R&&triggerEvent(gina,c,'error.'+h+'.hform',e)}if(typeof e!='undefined'&&typeof e.location!='undefined')return window.location.hash='',e.location=/^http/.test(e.location)||/^\//.test(e.location)?e.location:location.protocol+'//'+e.location,e.location.replace(/^http(.*):\d+/,'$1').replace(/^:\/\//,'').split(/\//g)[0]==gina.config.hostname&&gina.config.hostname==window.location.host&&(e.location=location.protocol+e.location.replace(/^http(.*):\d+/,'$1').replace(/^:/,'')),setTimeout(()=>{window.location.href=
404
+ e.location},Fa)}else if(ab.status!=0)if(e={status:ab.status},/blob/.test(ab.responseType)){Db=new Blob([this.response],{type:'text/plain'});var Gb=new FileReader,Kb='';Gb.addEventListener('loadend',pb=>{/string/i.test(typeof pb.srcElement.result)?Kb+=pb.srcElement.result:typeof pb.srcElement.result=='object'?e=A(e,pb.srcElement.result):e.message+=pb.srcElement.result;if(/2/.test(Gb.readyState)){if(/^(\{|\[)/.test(Kb))try{e=A(e,JSON.parse(Kb))}catch(ob){e=A(e,ob)}e.message||delete e.message;J=u.eventData.error=
405
+ e;if(gina&&m&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&J)try{window.ginaToolbar.update('data-xhr',J)}catch(ob){throw ob;}/^gina\-upload/i.test(h)&&Za(gina,c,'error',h,e);triggerEvent(gina,c,'error.'+h,e);R&&triggerEvent(gina,c,'error.'+h+'.hform',e)}});Gb.readAsText(Db)}else{if(/^(\{|\[)/.test(ab.responseText))try{e=A(JSON.parse(ab.responseText),e)}catch(pb){e=A(pb,e)}else typeof ab.responseText=='object'?e=A(ab.responseText,e):e.message=ab.responseText;if(typeof e!='undefined'&&
406
+ typeof e.error!='undefined'&&e.fields&&typeof e.fields=='object'){Fa=typeof e.message!='undefined'?e.message:null;Qa={};for(La in e.fields)Aa={},Aa[La]={},Aa[La].isApiError=e.fields[La],Fa&&!Aa[La].isApiError&&(Aa[La].isApiError=e.error),Qa[La]=Aa[La],ma(u.target,Aa,a,La);e.fields=Qa}J=u.eventData.error=e;if(gina&&m&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&J)try{window.ginaToolbar.update('data-xhr',J)}catch(pb){throw pb;}/^gina\-upload/i.test(h)&&Za(gina,c,'error',h,e);triggerEvent(gina,
407
+ c,'error.'+h,e);R&&triggerEvent(gina,c,'error.'+h+'.hform',e)}else if(ab.readyState==4&&ab.status===0){e={status:408,transportError:!0,reason:xa?'unload':'transport',error:da('transportError')};u.eventData.error=e;u.target.removeAttribute('data-gina-form-loading');J=e;if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&J)try{m&&typeof J!='undefined'&&/\/html/.test(xb)&&window.ginaToolbar.update('data-xhr',J)}catch(pb){throw pb;}/^gina\-upload/i.test(h)&&Za(gina,c,'error',h,e);triggerEvent(gina,
408
+ c,'error.'+h,e);R&&triggerEvent(gina,c,'error.'+h+'.hform',e)}}};ab.onprogress=function(Fa){var Qa='0';Fa.lengthComputable&&(Qa=Fa.loaded/Fa.total,Qa=parseInt(Qa*100));Fa={status:100,progress:Qa};u.eventData.onprogress=Fa;triggerEvent(gina,c,'progress.'+h,Fa)};if(typeof ab.upload!='undefined'&&ab.upload){var Rb=[];if(yb&&a instanceof FormData)for([,Nb]of a.entries())Nb instanceof File&&Rb.push(Nb.name);ab.upload.onprogress=function(Fa){if(yb){var Qa=null;Fa.lengthComputable&&Fa.total>0&&(Qa=Fa.loaded/
409
+ Fa.total,Qa=parseInt(Qa*100));Fa={status:100,progress:Qa,loaded:Fa.loaded,total:Fa.total,lengthComputable:Fa.lengthComputable,files:Rb};u.eventData.uploadProgress=Fa;B(c.uploadProperties?c.uploadProperties.progressContainer:null,Qa===null?'indeterminate':'uploading',Fa);triggerEvent(gina,c,'uploadProgress.'+h,Fa);hb&&triggerEvent(gina,c,'uploadProgress.'+h+'.hform',Fa)}};ab.upload.onloadend=function(){yb&&B(c.uploadProperties?c.uploadProperties.progressContainer:null,'processing')}}ab.ontimeout=function(Fa){e=
410
+ {status:408,error:'Request Timeout'};u.eventData.ontimeout=e;u.target.removeAttribute('data-gina-form-loading');/^gina\-upload/i.test(h)&&Za(gina,c,'error',h,e);triggerEvent(gina,c,'error.'+h,e);R&&triggerEvent(gina,c,'error.'+h+'.hform',e)};if(a){var Nb=!1;if(typeof a=='object'){b=[];Ob=0;Sa={};try{if(a instanceof FormData){var eb=c.uploadProperties&&c.uploadProperties.uploadTriggerId?document.getElementById(c.uploadProperties.uploadTriggerId):null,db=eb&&eb.getAttribute('data-gina-form-upload-group')||
411
+ 'untagged',Lb,fb;for([Lb,fb]of a.entries())fb instanceof File?(Nb||=!0,b[Ob]={key:Lb,group:db,file:fb,bin:''},++Ob):/^(.*)\[(.*)\]/.test(Lb)?Sa=k(Sa,Lb.replace(/\]/g,'').split(/\[/g),0,fb):Sa[Lb]=fb}else a=JSON.stringify(a);if(Nb&&b.length>0){var kb='--ginaWKBoundary'+E();return vb(b,kb,mb(a,kb),0,function(Fa,Qa,Db){if(Fa)/^gina\-upload/i.test(h)&&Za(gina,c,'error',h,Fa),Ka(oa.disabledElts),oa.disabledElts=null,triggerEvent(gina,c,'error.'+h,Fa),R&&triggerEvent(gina,c,'error.'+h+'.hform',Fa);else return Db&&
412
+ (ab.setRequestHeader('Content-Type','multipart/form-data; boundary='+kb),ab.send(Qa),Qb(),u.sent=!0,m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.sent||(gina.forms.sent={}),window.ginaToolbar.update('forms',{id:h,sent:Qa}))),!1})}typeof Sa!='undefined'&&Sa.count()>0&&(a=JSON.stringify(Sa))}catch(Fa){/^gina\-upload/i.test(h)&&Za(gina,c,'error',h,Fa),triggerEvent(gina,c,'error.'+h,Fa),R&&triggerEvent(gina,c,'error.'+h+'.hform',Fa)}}Nb||(eb=(eb=c.getAttribute('enctype'))&&
413
+ eb!=''?eb:typeof a=='string'&&/^[\[{]/.test(a.trim())?'application/json; charset=UTF-8':Ra,typeof eb!='undefined'&&eb!=null&&eb!=''&&ab.setRequestHeader('Content-Type',eb),ab.send(a),Qb())}else typeof Ra!='undefined'&&Ra!=null&&Ra!=''&&ab.setRequestHeader('Content-Type',Ra),ab.send(),Qb();u.sent=!0;m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.sent||(gina.forms.sent={}),eb={id:h,sent:typeof a=='string'?JSON.parse(a):a},window.ginaToolbar.update('forms',eb))}}}},B=function(a,
414
+ b,c){if(a&&(a=document.getElementById(a))){var h=/^progress$/i.test(a.tagName);b=='reset'?(h?(a.removeAttribute('value'),a.removeAttribute('max')):a.textContent='',a.removeAttribute('data-gina-upload-progress'),a.removeAttribute('data-gina-upload-progress-state'),h||(a.removeAttribute('role'),a.removeAttribute('aria-valuemin'),a.removeAttribute('aria-valuemax'),a.removeAttribute('aria-valuenow'))):(a.setAttribute('data-gina-upload-progress-state',b),h||(a.setAttribute('role','progressbar'),a.setAttribute('aria-valuemin',
415
+ '0'),a.setAttribute('aria-valuemax','100')),b!='processing'&&(b=='complete'?(h?(a.getAttribute('max')||(a.max=100),a.value=a.max):a.textContent='100%',a.setAttribute('data-gina-upload-progress',100),h||a.setAttribute('aria-valuenow','100')):b=='error'?(h?(a.getAttribute('max')||(a.max=100),a.value=0):a.textContent='',a.removeAttribute('data-gina-upload-progress'),h||a.removeAttribute('aria-valuenow')):b!='preparing'&&b!='indeterminate'&&c&&c.progress!==null?(h?(a.max=c.total,a.value=c.loaded):(a.textContent=
416
+ c.progress+'%',a.setAttribute('aria-valuenow',c.progress)),a.setAttribute('data-gina-upload-progress',c.progress)):(h&&a.removeAttribute('value'),a.removeAttribute('data-gina-upload-progress'),h||a.removeAttribute('aria-valuenow'))))}},la=function(a,b){a&&(a=document.getElementById(a))&&a.setAttribute('data-gina-upload-dropzone-state',b)},va=function(a){var b=a.getAttribute('data-gina-form-upload-dropzone')||null;if(b){var c=document.getElementById(b);if(c){var h=c.getAttribute('data-gina-upload-dropzone');
417
+ if(h)h!=a.id&&console.warn('[FormValidator][upload] dropzone `#'+b+'` is already bound to `#'+h+'`: skipping `#'+a.id+'`');else{c.setAttribute('data-gina-upload-dropzone',a.id);la(b,'idle');var u=0,z=function(e){return(e=e.dataTransfer&&e.dataTransfer.types||null)?Array.prototype.indexOf.call(e,'Files')>-1:!1};addListener(gina,c,'dragenter',function(e){z(e)&&(e.preventDefault(),u++,la(b,'over'))});addListener(gina,c,'dragover',function(e){z(e)&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=
418
+ 'copy'))});addListener(gina,c,'dragleave',function(e){z(e)&&--u<=0&&(u=0,la(b,'idle'))});addListener(gina,c,'drop',function(e){if(z(e))if(e.preventDefault(),u=0,e=e.dataTransfer.files,e.length){if(e.length>1&&!a.multiple){console.warn('[FormValidator][upload] '+e.length+' files dropped on `#'+b+'` but `#'+a.id+'` is not `multiple`: keeping the first file only');var J=new DataTransfer;J.items.add(e[0]);e=J.files}a.files=e;la(b,'dropped');triggerEvent(gina,a,'change')}else la(b,'idle')})}}else console.warn('[FormValidator][upload] `data-gina-form-upload-dropzone` targets `#'+
419
+ b+'` but no such element was found: drag-and-drop stays inactive for `#'+a.id+'`')}},qa=function(a){var b=[];if(!a||!a.elements)return b;a=a.elements;for(var c,h=0,u=a.length;h<u;++h)(c=a[h])&&c.type=='file'&&typeof c.getAttribute=='function'&&(c=c.getAttribute('data-gina-form-virtual'))&&typeof n.$forms[c]!='undefined'&&/^true$/i.test(n.$forms[c].sent)&&b.indexOf(c)<0&&b.push(c);return b},ra=function(a,b){var c=a&&typeof a.getAttribute=='function'?a.getAttribute('id'):null,h=c&&typeof n.$forms[c]!=
420
+ 'undefined'?n.$forms[c]:null;if(!h)return!1;var u=qa(a);if(h.stagedUploadWait){if(u.length>0)return!0;h.stagedUploadWait=null;return!1}if(u.length==0)return!1;h.stagedUploadWait={replay:b,failed:!1};ia(a,da('uploadPending'));if(m)try{console.info('[FormValidator][upload] form `#'+c+'`: submit waiting for '+u.length+' staged upload(s) to finish ('+u.join(', ')+')')}catch(z){}return!0},Ta=function(a,b){var c=a&&typeof a.getAttribute=='function'?a.getAttribute('id'):null;(c=c&&typeof n.$forms[c]!='undefined'?
421
+ n.$forms[c]:null)&&c.stagedUploadWait&&(b!='success'&&(c.stagedUploadWait.failed=!0),b=function(){var h=a&&typeof a.getAttribute=='function'?a.getAttribute('id'):null;if((h=h&&typeof n.$forms[h]!='undefined'?n.$forms[h]:null)&&h.stagedUploadWait){var u=h.stagedUploadWait,z=typeof a.isConnected!='undefined'&&!a.isConnected;!z&&qa(a).length>0||(h.stagedUploadWait=null,u.failed||z?/^true$/i.test(h.isSending)||G(h):u.replay())}},typeof queueMicrotask=='function'?queueMicrotask(b):Promise.resolve().then(b))},
422
+ Za=function(a,b,c,h,u){b=b.uploadProperties||null;if(!b)throw Error('No uploadProperties found !!');B(b.progressContainer||null,c=='success'?'complete':'error');la(b.dropzoneContainer||null,'idle');Ta(b.$form,c);a=document.getElementById(b.uploadTriggerId);h=null;var z=u.files||[],e=null;b.hasPreviewContainer&&(h=document.getElementById(b.previewContainer.id))&&(h.innerHTML='');b.errorField&&(e=document.getElementById(b.errorField));e&&(e.style.display='none');if(e&&c!='success'){var J=u.message||
423
+ u.error;e.textContent='';var I=document.createElement('p');I.textContent=J;e.appendChild(I);fadeIn(e);a&&a.form&&Ha(a.form,e.textContent)}else if(c!='success'){if(J=u.message||u.error,J=typeof J=='undefined'||J===null?'':String(J),a&&a.form&&J!=''&&Ha(a.form,J),m)try{console.warn('[FormValidator] upload `#'+b.uploadTriggerId+'`: no error element `#'+b.errorField+'`; the staging error is announced, not shown')}catch(za){}}else for(a&&a.form&&ia(a.form,da('uploadComplete')),c=0,u=z.length;c<u;++c){var R=
424
+ h.id.replace(/\-preview/,'-'+c+'-reset-trigger');e=!1;let za=document.getElementById(R);var oa=['reset','js-upload-reset'];var Ca=a.getAttribute('data-gina-form-upload-reset-label')||'Reset';za?(/a/i.test(za.tagName)&&(za.href='#'),za.innerHTML&&za.innerHTML!=''||(za.innerHTML=Ca),typeof za.className=='undefined'&&(za.className=''),R=A(za.className.split(/\s+/g),oa),za.className=R.join(' ')):(e=!0,za=document.createElement('A'),za.href='#',za.innerHTML=Ca,za.className=oa.join(' '),za.id=R);/^a$/i.test(za.tagName)&&
425
+ (za.setAttribute('role','button'),z[c].originalFilename&&za.setAttribute('aria-label',Ca+' '+z[c].originalFilename));za.style.display='none';typeof z[c].preview=='undefined'&&b.hasPreviewContainer&&/^image/.test(z[c].mime)&&z[c].location!=''&&(Ca=document.createElement('IMG'),Ca.src=z[c].tmpUri,Ca.alt=z[c].originalFilename||'',Ca.style.display='none',Ca.setAttribute('data-upload-original-filename',z[c].originalFilename),Ca.setAttribute('data-upload-reset-link-id',za.id),R=h.getAttribute('data-preview-max-width')||
426
+ null,Ca.width&&R&&Ca.width>R?(oa=Ca.width/R,Ca.width=R,Ca.height/=oa):!Ca.width&&R&&(Ca.width=R),/ul/i.test(b.previewContainer.tagName)?(R=document.createElement('LI'),R.className='item',R.appendChild(Ca),h.appendChild(R)):h.appendChild(Ca),fadeIn(Ca));Ca=b.uploadFields[c];for(J in Ca)if(J=='name'&&Ca[J].value!=''||!z[c][J]||J=='preview'&&typeof z[c][J]=='undefined'||/(height|width)/i.test(J)&&!/^image/.test(z[c].mime))/(preview|height|width)/i.test(J)&&(R=document.getElementById(Ca[J].id))&&R.parentNode.removeChild(R);
427
+ else if(J!='preview'&&(Ca[J].value=z[c][J]),J=='preview')for(I in z[c][J])if(typeof z[c][J][I]!='undefined'&&typeof Ca[J][I]!='undefined'&&(Ca[J][I].value=z[c][J][I]),I=='tmpUri'&&b.hasPreviewContainer){oa=document.createElement('IMG');oa.src=z[c][J].tmpUri;oa.alt=z[c].originalFilename||'';oa.style.display='none';oa.setAttribute('data-upload-original-filename',z[c].originalFilename);oa.setAttribute('data-upload-preview-original-filename',z[c][J].originalFilename);oa.setAttribute('data-upload-reset-link-id',
428
+ za.id);if(R=h.getAttribute('data-preview-max-width')||null)oa.width=R;/ul/i.test(b.previewContainer.tagName)?(R=document.createElement('LI'),R.className='item',R.appendChild(oa),h.appendChild(R)):h.appendChild(oa);fadeIn(oa)}b.hasPreviewContainer&&(/ul/i.test(b.previewContainer.tagName)?(R=document.createElement('LI'),R.className='item',e&&R.appendChild(za),h.appendChild(R)):e&&h.appendChild(za));mc('reset',a,c);fadeIn(za)}},Oa=function(a,b){if(b)try{a.classList.remove(b),a.parentElement&&a.parentElement.classList.remove(b)}catch(c){}/none/i.test(window.getComputedStyle(a).display)&&
429
+ (/none/i.test(a.parentElement.style.display)?a.parentElement.style.display='block':a.style.display='block')},lb=function(a,b){console.debug(b+' input files');var c=/reset/i.test(b)?!0:!1,h=document.getElementById(a.id+'-preview'),u=null,z=null;h=Array.prototype.filter.call(h.childNodes,function(Ra){return/img/i.test(Ra.tagName)});z=null;var e=a.customFiles,J=[],I=a.getAttribute('data-gina-form-upload-on-'+b),R=a.getAttribute('data-gina-form-upload-hidden-class'),oa=0;for(let Ra=0,Sa=h.length;Ra<Sa;Ra++)if(/img/i.test(h[Ra].tagName)){c?
430
+ (u=h[Ra].getAttribute('data-upload-original-filename'),J.push(u),(z=h[Ra].getAttribute('data-upload-preview-original-filename'))&&J.push(z)):(u=h[Ra].src.substring(h[Ra].src.lastIndexOf('/')+1),J.push(u));for(let jb=0,Wa=e.length;jb<Wa;jb++)if(e[jb].name==u){z=c?document.getElementById(h[Ra].getAttribute('data-upload-'+b+'-link-id')):document.getElementById(e[jb].deleteLinkId);z.style.display='none';h[Ra].style.display='none';e.splice(jb,1);oa++;a.customFiles=e;c&&(a.value=e.join(', C:\\fakepath\\'));
431
+ var Ca=new RegExp('^'+(a.name+'['+jb+']').replace(/\-|\[|\]|\./g,'\\$&'));for(let Ja=0,Xa=a.form.length;Ja<Xa;Ja++){var za=a.form[Ja].dataset.ginaFormUploadIsLocked||!1;if(Ca.test(a.form[Ja].name)&&!/true/i.test(za)&&(a.form[Ja].remove(),Xa--,Ja--,gina&&m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar))try{window.ginaToolbar.update('data-xhr',{files:e})}catch(yb){throw yb;}}za=a.getAttribute('data-gina-form-upload-'+b+'-action');if(!za||typeof za=='undefined'||za==''||/404/.test(za))throw Error('input file `'+
432
+ a.id+'` error: `data-gina-form-upload-'+b+'-action` is required. You need to provide a valide url.');(Ca=a.getAttribute('data-gina-form-upload-'+b+'-method'))&&typeof Ca!='undefined'&&Ca!=''?Ca=Ca.toUpperCase():c?Ca='POST':(Ca=J.length>1?'POST':'DELETE',console.warn('`data-gina-form-upload-'+b+'-method` was not defined. Switching to `'+Ca+'` by default.'));var Ma=a.getAttribute('data-gina-form-upload-'+b+'-is-synchrone');if(/null/i.test(Ma)||typeof Ca=='undefined'||Ca=='')Ma=!0;za={url:za,method:Ca,
433
+ isSynchrone:Ma,headers:{'Content-Type':'application/json; charset=UTF-8','X-Requested-With':'XMLHttpRequest'}};y(Ca)&&(Ma=L())&&(za.headers['X-Gina-CSRF-Token']=Ma);za=setupXhr(za);/GET|DELETE/i.test(Ca)?za.send():za.send(JSON.stringify({files:J}));Oa(a,R);if(document.activeElement===z||z.contains(document.activeElement))typeof a.focus=='function'&&a.focus(),document.activeElement!==a&&console.debug('[FormValidator][upload]['+(a.id||'?')+'] '+b+': could not move focus to the file input before removing the '+
434
+ b+' control; focus falls back to the document.');a.form&&u&&ia(a.form,da('fileRemoved').replace('%s',function(){return u}));z.remove();h[Ra].remove();break}}oa===0&&h.length>0&&console.warn('[FormValidator][upload]['+(a.id||'?')+'] '+b+': '+h.length+" preview(s) present but none matched the staged input files \u2014 nothing removed, cleanup skipped. Ensure each preview's `data-upload-original-filename` matches a current input file name.");oa>0&&(B(a.getAttribute('data-gina-form-upload-progress')||
435
+ (a.id?a.id+'-progress':null),'reset'),la(a.getAttribute('data-gina-form-upload-dropzone')||null,'idle'));if(oa>0&&I)if(/\((.*)\)/.test(I))try{console.warn('[FormValidator][upload] function-call shape not supported on `data-gina-form-upload-on-'+b+'` \u2014 use a bare identifier and register the handler on window: '+I)}catch(Ra){}else if(typeof window[I]==='function')try{window[I]({$upload:a,bindingType:b,files:J})}catch(Ra){console.error('[FormValidator][upload] `data-gina-form-upload-on-'+b+'` callback (`'+
436
+ I+'`) threw: ',Ra)}else console.warn('[FormValidator][upload] `data-gina-form-upload-on-'+b+'` callback `'+I+'` was not found on `window`.')},mb=function(a,b){var c='',h,u;for([h,u]of a.entries())u instanceof File||(a=String(h).replace(/\r/g,'%0D').replace(/\n/g,'%0A').replace(/"/g,'%22'),c+='--'+b+'\r\nContent-Disposition: form-data; name="'+a+'"\r\n\r\n'+u+'\r\n');return c},vb=function(a,b,c,h,u){var z=function(I){return String(I).replace(/\r/g,'%0D').replace(/\n/g,'%0A').replace(/"/g,'%22')},e=
437
+ [];c&&e.push(c);try{for(c=h;c<a.length;c++){var J=a[c].file.type||'application/octet-stream';e.push('--'+b+'\r\nContent-Disposition: form-data; name="'+z(a[c].key)+'"; group="'+z(a[c].group)+'"; filename="'+z(a[c].file.name)+'"\r\nContent-Type: '+J+'\r\nContent-Length: '+a[c].file.size+'\r\n\r\n');e.push(a[c].file);e.push('\r\n')}}catch(I){return u(I,null,!0)}e.push('--'+b+'--');return u(!1,new Blob(e),!0)},Ab=function(a){var b=a.target.getAttribute('data-gina-form-event-on-submit-success')||null;
438
438
  if(b!=null)if(/\((.*)\)/.test(b))try{console.warn('[gina-form-event] function-call shape no longer supported on data-gina-form-event-on-submit-success \u2014 use a bare identifier and register the handler on window: '+b)}catch(c){}else a.on('success.hform',window[b]);b=a.target.getAttribute('data-gina-form-event-on-swap')||null;if(b!=null)if(/\((.*)\)/.test(b))try{console.warn('[gina-form-event] function-call shape not supported on data-gina-form-event-on-swap \u2014 use a bare identifier and register the handler on window: '+
439
439
  b)}catch(c){}else a.on('afterswap.hform',window[b]);b=a.target.getAttribute('data-gina-form-event-on-submit-error')||null;if(b!=null)if(/\((.*)\)/.test(b))try{console.warn('[gina-form-event] function-call shape no longer supported on data-gina-form-event-on-submit-error \u2014 use a bare identifier and register the handler on window: '+b)}catch(c){}else a.on('error.hform',window[b]);b=a.target.getAttribute('data-gina-form-event-on-upload-progress')||null;if(b!=null)if(/\((.*)\)/.test(b))try{console.warn('[gina-form-event] function-call shape not supported on data-gina-form-event-on-upload-progress \u2014 use a bare identifier and register the handler on window: '+
440
- b)}catch(c){}else a.on('uploadProgress.hform',window[b])},tb=function(a){var b=null,c=a;if(!n.$forms)throw Error('`$forms` collection not found');if(typeof c=='undefined')if(typeof this.id!='undefined'&&this.id!=''&&this.id!=null)c=this.id;else throw Error('[ FormValidator::destroy(formId) ] `formId` is missing');if(typeof c=='string')c=c.replace(/#/,'');else{if(typeof c!='object'||Array.isArray(c))throw Error('[ FormValidator::destroy(formId) ] `formId` should be a `string`');a=c.form;c=a.getAttribute('id')||
440
+ b)}catch(c){}else a.on('uploadProgress.hform',window[b])},ub=function(a){var b=null,c=a;if(!n.$forms)throw Error('`$forms` collection not found');if(typeof c=='undefined')if(typeof this.id!='undefined'&&this.id!=''&&this.id!=null)c=this.id;else throw Error('[ FormValidator::destroy(formId) ] `formId` is missing');if(typeof c=='string')c=c.replace(/#/,'');else{if(typeof c!='object'||Array.isArray(c))throw Error('[ FormValidator::destroy(formId) ] `formId` should be a `string`');a=c.form;c=a.getAttribute('id')||
441
441
  'form.'+E();a.setAttribute('id',c)}typeof n.$forms[c]!='undefined'?b=n.$forms[c]:typeof this.binded!='undefined'&&(b=this);if(b)addListener(gina,b.target,'destroy.'+c,function(h){cancelEvent(h);delete n.$forms[c];removeListener(gina,h.currentTarget,h.type);removeListener(gina,h.currentTarget,'destroy')}),b=nc(b),triggerEvent(gina,b.target,'destroy.'+c);else throw Error('[ FormValidator::destroy(formId) ] `'+c+'` not found');},Tb=function(){var a=typeof arguments[0]!='undefined'?arguments[0]:n.rules;
442
- for(let h in a){var b=Object.getOwnPropertyNames(a[h]),c=0;let u=b.length,z=!1,e=null;for(;c<u;){if(/^_case_/.test(b[c])){z=!0;e=b[c];break}c++}z||typeof a[h]!='object'||Tb(a[h]);if(e&&Array.isArray(a[h][e].conditions)&&a[h][e].conditions.length>0)for(b=0,c=a[h][e].conditions.length;b<c;)typeof a[h][e].conditions[b].rules!='undefined'&&a[h][e].conditions[b].rules.count()==0&&(a[h][e].conditions.splice(b,1),c--,b--),b++}},Ab=function(a){var b=JSON.stringify(a),c=b.match(/("@import\s+[-_a-z A-Z 0-9/.]+")/g)||
443
- [],h=[];for(let J=0,I=c.length;J<I;J++)h.indexOf(c[J])<0&&h.push(c[J]);c=h;h=b.match(/("_merging(.*))(\s+:|:)(.*)(",|")/g);n.rules||(n.rules={});if(c&&c.length>0){a={};for(let J=0,I=c.length;J<I;++J){var u=c[J].replace(/(@import\s+|"|')/g,'');var z=u.replace(/(@import\s+|"|')/g,'').split(/\s/g);for(let Q=0,pa=z.length;Q<pa;++Q){var e=z[Q].replace(/\//g,'.').replace(/\-/g,'.');typeof n.rules[e]!='undefined'?(e=JSON.stringify(n.rules[e]),e=JSON.parse(e),e._comment=typeof e._comment!='undefined'?e._comment+
444
- '\n':'',e._comment+='Imported from `'+u+'`',e=JSON.stringify(e),b=b.replace(new RegExp(c[J],'g'),e),n.rules=JSON.parse(JSON.stringify(n.rules).replace(new RegExp(c[J],'g'),'{}'))):console.warn('[formValidator:rules] <@import error> on `'+c[J]+'`: rule `'+z[Q]+'` not found. Ignoring.')}z=new RegExp(c[J]);if(u=h&&z.test(h.join())?!0:!1)for(let Q=0,pa=h.length;Q<pa;Q++)if(z.test(h[Q])){u=JSON.stringify(a);u=u.substring(1,u.length-1);Q<pa-1&&(u+=',');try{b=b.replace(new RegExp(h[Q],'g'),u),n.rules=JSON.parse(JSON.stringify(n.rules).replace(new RegExp(h[Q],
445
- 'g'),'{}'))}catch(Ba){throw Ba;}}a={}}a=JSON.parse(b);yb(a,'');try{Tb()}catch(J){console.error(J.stack)}}return a},Wb=function(a){gina.hasValidator?(n=A(n,gina.validator),n.on('init',function(b){n.isReady=!0;triggerEvent(gina,n.target,'ready.'+n.id,n)})):(n.target=document,n.setOptions=g,n.getFormById=V,n.validateFormById=Cb,n.bindRegion=wc,n.resetErrorsDisplay=Aa,n.resetFields=Ua,n.handleErrorsDisplay=ma,n.send=ta,n.setErrorLabels=Fc,n.isAutofillValueWithheld=oc,n.on('init',function(b){if(typeof a!=
446
- 'undefined'&&a.count())try{yb(a,''),a=Ab(a),gina.forms.rules=typeof gina.forms.rules!='undefined'&&gina.forms.rules?A(gina.forms.rules,a,!0):a,n.rules=A(n.rules,JSON.clone(gina.forms.rules),!0)}catch(pa){throw pa;}T.count()||(T=JSON.clone(n.rules));Z.setOptions=g;Z.getFormById=V;Z.validateFormById=Cb;Z.resetErrorsDisplay=Aa;Z.resetFields=Ua;Z.handleErrorsDisplay=ma;Z.submit=cb;Z.send=ta;Z.unbind=nc;Z.bind=Yb;Z.reBind=Gc;Z.bindRegion=wc;Z.destroy=tb;b=0;for(var c=document.getElementsByTagName('form'),
447
- h=0,u=c.length;h<u;++h)if(N(c[h],T)){if(c[h].getAttribute){var z=c[h].getAttribute('id')||'form.'+E();z!==c[h].getAttribute('id')&&c[h].setAttribute('id',z)}else z='form.'+E(),c[h].setAttribute('id',z);Z.id=z;Z.target=c[h];n.$forms[z]=A({},Z);var e=c[h].getAttribute('data-gina-form-rule');if(e){e=e.replace(/\-|\//g,'.');if(typeof a!='undefined'){if(!/^[A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*)*$/.test(e))throw Error('Invalid form rule path: `'+e+'`');for(var J=e.split('.'),I=gina.forms.rules,Q=0;I!=null&&
448
- Q<J.length;Q++)I=I[J[Q]];n.$forms[z].rules[e]=n.rules[e]=T[e]=A(JSON.clone(I),n.rules[e])}if(typeof T[e]=='undefined')throw Error('['+z+'] no rule found with key: `'+e+'`. Please check if json is not malformed @ /forms/rules/'+e.replace(/\./g,'/')+'.json');e=n.rules[e]}typeof z=='string'&&typeof T[z.replace(/\-/g,'.')]!='undefined'||typeof e=='object'?(z=n.$forms[z].target,e?Yb(z,e):Yb(z),++b):(typeof c[h].id=='object'?(delete n.$forms[c[h].id],z=c[h].attributes.getNamedItem('id').nodeValue||'form.'+
449
- E(),c[h].setAttribute('id',z),c[h].id=z,Z.target=c[h],n.$forms[z]=A({},Z),z=n.$forms[z].target):z=n.$forms[c[h].id].target,e?Yb(z,e):Yb(z))}n.isReady=!0;gina.hasValidator=!0;gina.validator=n;triggerEvent(gina,n.target,'ready.'+n.id,n)}));n.initialized=!0;return n},yb=function(a,b){var c;for(c in a)if(typeof a[c]=='object'&&typeof n.rules[b+c]=='undefined'){var h=c;/\[|\]/.test(c)&&(h=c.replace(/\[/g,'.').replace(/\]/g,''));n.rules[b+h]=a[c];yb(a[c],b+h+'.')}},wb=function(a){if(typeof T[a]!='undefined')return T[a];
450
- var b=null;if(typeof n.rules[a]=='undefined'){if(yb(T,''),T=Ab(T),b=T[a],!b)return{}}else b=n.rules[a];b=JSON.clone(b);var c=new RegExp('^'+a),h=new RegExp('^'+a+'.'),u=null,z=function(J,I,Q,pa,Ba,za,Ma){if(I.length){var Qa=Object.getOwnPropertyNames(J)[0],Ra=I[0];Ra=Ba==''?Ba+=Ra:Ba+'['+Ra+']';I.length==1&&(J[Qa]=A(J[Qa],Q,!0));I.splice(0,1);Ra==Qa?z(J[Qa],I,Q,pa,Ra,za,Ma):typeof J[Qa]!='undefined'?z(J[Qa],I,Q,pa,Ra,za,Ma):z(J,I,Q,pa,Ba,za,Ma)}},e;for(e in n.rules)e!=a&&c.test(e)&&(u=e.replace(h,
451
- ''),/\./.test(u)&&(u=u.split(/\./g),z(b,u,n.rules[e],b,'',0,b.count()-1)));return T[a]=b},Sb=formatDataFromString,jc=function(a){var b=n.$forms[a.form.getAttribute('id')],c=/^true$/i.test(a.disabled)?!0:!1;c&&typeof b.rule!='undefined'&&typeof b.rule[a.name]!='undefined'&&typeof b.rule[a.name].exclude!='undefined'&&/^false$/i.test(b.rule[a.name].exclude)&&(c=!1);if(/^(radio|text|hidden|password|number|date|email)$/i.test(a.type)&&!c){var h=Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,
442
+ for(let h in a){var b=Object.getOwnPropertyNames(a[h]),c=0;let u=b.length,z=!1,e=null;for(;c<u;){if(/^_case_/.test(b[c])){z=!0;e=b[c];break}c++}z||typeof a[h]!='object'||Tb(a[h]);if(e&&Array.isArray(a[h][e].conditions)&&a[h][e].conditions.length>0)for(b=0,c=a[h][e].conditions.length;b<c;)typeof a[h][e].conditions[b].rules!='undefined'&&a[h][e].conditions[b].rules.count()==0&&(a[h][e].conditions.splice(b,1),c--,b--),b++}},Bb=function(a){var b=JSON.stringify(a),c=b.match(/("@import\s+[-_a-z A-Z 0-9/.]+")/g)||
443
+ [],h=[];for(let J=0,I=c.length;J<I;J++)h.indexOf(c[J])<0&&h.push(c[J]);c=h;h=b.match(/("_merging(.*))(\s+:|:)(.*)(",|")/g);n.rules||(n.rules={});if(c&&c.length>0){a={};for(let J=0,I=c.length;J<I;++J){var u=c[J].replace(/(@import\s+|"|')/g,'');var z=u.replace(/(@import\s+|"|')/g,'').split(/\s/g);for(let R=0,oa=z.length;R<oa;++R){var e=z[R].replace(/\//g,'.').replace(/\-/g,'.');typeof n.rules[e]!='undefined'?(e=JSON.stringify(n.rules[e]),e=JSON.parse(e),e._comment=typeof e._comment!='undefined'?e._comment+
444
+ '\n':'',e._comment+='Imported from `'+u+'`',e=JSON.stringify(e),b=b.replace(new RegExp(c[J],'g'),e),n.rules=JSON.parse(JSON.stringify(n.rules).replace(new RegExp(c[J],'g'),'{}'))):console.warn('[formValidator:rules] <@import error> on `'+c[J]+'`: rule `'+z[R]+'` not found. Ignoring.')}z=new RegExp(c[J]);if(u=h&&z.test(h.join())?!0:!1)for(let R=0,oa=h.length;R<oa;R++)if(z.test(h[R])){u=JSON.stringify(a);u=u.substring(1,u.length-1);R<oa-1&&(u+=',');try{b=b.replace(new RegExp(h[R],'g'),u),n.rules=JSON.parse(JSON.stringify(n.rules).replace(new RegExp(h[R],
445
+ 'g'),'{}'))}catch(Ca){throw Ca;}}a={}}a=JSON.parse(b);zb(a,'');try{Tb()}catch(J){console.error(J.stack)}}return a},Wb=function(a){gina.hasValidator?(n=A(n,gina.validator),n.on('init',function(b){n.isReady=!0;triggerEvent(gina,n.target,'ready.'+n.id,n)})):(n.target=document,n.setOptions=g,n.getFormById=Q,n.validateFormById=Cb,n.bindRegion=wc,n.resetErrorsDisplay=Ba,n.resetFields=Ua,n.handleErrorsDisplay=ma,n.send=ta,n.setErrorLabels=Fc,n.isAutofillValueWithheld=oc,n.on('init',function(b){if(typeof a!=
446
+ 'undefined'&&a.count())try{zb(a,''),a=Bb(a),gina.forms.rules=typeof gina.forms.rules!='undefined'&&gina.forms.rules?A(gina.forms.rules,a,!0):a,n.rules=A(n.rules,JSON.clone(gina.forms.rules),!0)}catch(oa){throw oa;}U.count()||(U=JSON.clone(n.rules));Z.setOptions=g;Z.getFormById=Q;Z.validateFormById=Cb;Z.resetErrorsDisplay=Ba;Z.resetFields=Ua;Z.handleErrorsDisplay=ma;Z.submit=cb;Z.send=ta;Z.unbind=nc;Z.bind=Yb;Z.reBind=Gc;Z.bindRegion=wc;Z.destroy=ub;b=0;for(var c=document.getElementsByTagName('form'),
447
+ h=0,u=c.length;h<u;++h)if(M(c[h],U)){if(c[h].getAttribute){var z=c[h].getAttribute('id')||'form.'+E();z!==c[h].getAttribute('id')&&c[h].setAttribute('id',z)}else z='form.'+E(),c[h].setAttribute('id',z);Z.id=z;Z.target=c[h];n.$forms[z]=A({},Z);var e=c[h].getAttribute('data-gina-form-rule');if(e){e=e.replace(/\-|\//g,'.');if(typeof a!='undefined'){if(!/^[A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*)*$/.test(e))throw Error('Invalid form rule path: `'+e+'`');for(var J=e.split('.'),I=gina.forms.rules,R=0;I!=null&&
448
+ R<J.length;R++)I=I[J[R]];n.$forms[z].rules[e]=n.rules[e]=U[e]=A(JSON.clone(I),n.rules[e])}if(typeof U[e]=='undefined')throw Error('['+z+'] no rule found with key: `'+e+'`. Please check if json is not malformed @ /forms/rules/'+e.replace(/\./g,'/')+'.json');e=n.rules[e]}typeof z=='string'&&typeof U[z.replace(/\-/g,'.')]!='undefined'||typeof e=='object'?(z=n.$forms[z].target,e?Yb(z,e):Yb(z),++b):(typeof c[h].id=='object'?(delete n.$forms[c[h].id],z=c[h].attributes.getNamedItem('id').nodeValue||'form.'+
449
+ E(),c[h].setAttribute('id',z),c[h].id=z,Z.target=c[h],n.$forms[z]=A({},Z),z=n.$forms[z].target):z=n.$forms[c[h].id].target,e?Yb(z,e):Yb(z))}n.isReady=!0;gina.hasValidator=!0;gina.validator=n;triggerEvent(gina,n.target,'ready.'+n.id,n)}));n.initialized=!0;return n},zb=function(a,b){var c;for(c in a)if(typeof a[c]=='object'&&typeof n.rules[b+c]=='undefined'){var h=c;/\[|\]/.test(c)&&(h=c.replace(/\[/g,'.').replace(/\]/g,''));n.rules[b+h]=a[c];zb(a[c],b+h+'.')}},wb=function(a){if(typeof U[a]!='undefined')return U[a];
450
+ var b=null;if(typeof n.rules[a]=='undefined'){if(zb(U,''),U=Bb(U),b=U[a],!b)return{}}else b=n.rules[a];b=JSON.clone(b);var c=new RegExp('^'+a),h=new RegExp('^'+a+'.'),u=null,z=function(J,I,R,oa,Ca,za,Ma){if(I.length){var Ra=Object.getOwnPropertyNames(J)[0],Sa=I[0];Sa=Ca==''?Ca+=Sa:Ca+'['+Sa+']';I.length==1&&(J[Ra]=A(J[Ra],R,!0));I.splice(0,1);Sa==Ra?z(J[Ra],I,R,oa,Sa,za,Ma):typeof J[Ra]!='undefined'?z(J[Ra],I,R,oa,Sa,za,Ma):z(J,I,R,oa,Ca,za,Ma)}},e;for(e in n.rules)e!=a&&c.test(e)&&(u=e.replace(h,
451
+ ''),/\./.test(u)&&(u=u.split(/\./g),z(b,u,n.rules[e],b,'',0,b.count()-1)));return U[a]=b},Sb=formatDataFromString,jc=function(a){var b=n.$forms[a.form.getAttribute('id')],c=/^true$/i.test(a.disabled)?!0:!1;c&&typeof b.rule!='undefined'&&typeof b.rule[a.name]!='undefined'&&typeof b.rule[a.name].exclude!='undefined'&&/^false$/i.test(b.rule[a.name].exclude)&&(c=!1);if(/^(radio|text|hidden|password|number|date|email)$/i.test(a.type)&&!c){var h=Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,
452
452
  'value'),u=h.set;h.set=function(z){Object.defineProperty(this,'value',{set:u});var e='change.'+this.id;z===this.value&&z===this.defaultValue||z===this.value||(this.value=z,console.debug('Value set: '+z),typeof gina.events[e]!='undefined'&&(console.debug('trigger event on: ',this.name,e),triggerEvent(gina,this,e,z)));Object.defineProperty(this,'value',h)};Object.defineProperty(a,'value',h)}},xc=function(a,b,c,h){typeof h=='undefined'&&(h=!1);var u=a.rules,z=n.$forms[b.form.getAttribute('id')],e=/^true$/i.test(b.disabled)?
453
453
  !0:!1;e&&typeof z.rule!='undefined'&&typeof z.rule[b.name]!='undefined'&&typeof z.rule[b.name].exclude!='undefined'&&/^false$/i.test(z.rule[b.name].exclude)&&(e=!1);if(/^(radio|checkbox|text|hidden|password|number|date|email)$/i.test(b.type)&&!e||h&&!e){h=b.name;z=u[h]||null;if(!z&&(fc(u,b),typeof u[h]=='undefined'))return;if(a.target.dataset.ginaFormLiveCheckEnabled&&z&&(h=[],z=null,e=0,/^(radio|checkbox)$/i.test(b.type)?(z=/^(radio|checkbox)$/i.test(b.type)?'changed.'+b.id:'change.'+b.id,typeof gina.events[z]==
454
454
  'undefined'&&(h[e]=z,++e),/^radio$/i.test(b.type)&&(z='change.'+b.id,typeof gina.events[z]=='undefined'&&(h[e]=z,++e))):(addEventListener(gina,b,'focusout.'+b.id,function(I){I.preventDefault();clearTimeout(c)}),z='change.'+b.id,typeof gina.events[z]=='undefined'&&(h[e]=z,++e),z='keyup.'+b.id,typeof gina.events[z]=='undefined'&&(h[e]=z,++e),z='focusin.'+b.id,typeof gina.events[z]=='undefined'&&(h[e]=z,++e),z='focusout.'+b.id,typeof gina.events[z]=='undefined'&&(h[e]=z,++e)),h.length>0)){var J=!1;addListener(gina,
455
- b,h,function(I){I.preventDefault();clearTimeout(c);if(!J&&/^changed\./i.test(I.type)||!J&&/^(radio|checkbox)$/i.test(I.target.type))J=!0;else if(J&&/^changed\./i.test(I.type)||J&&/^(radio|checkbox)$/i.test(I.target.type))return!1;if(typeof n.$forms[I.target.form.getAttribute('id')].isSubmitting!='undefined'&&/true/i.test(n.$forms[I.target.form.getAttribute('id')].isSubmitting))return!1;var Q=function(){/^(password)$/i.test(I.target.type)||console.debug('processing: '+I.target.name+'/'+I.target.id);
456
- if(!/^(radio|checkbox)$/i.test(I.target.type)&&I.target.value===I.target.defaultValue&&I.target.value!=''){var pa=n.$forms[I.target.form.getAttribute('id')].errors;if(pa&&pa.count()!=0)ma(I.target.form,pa,null,I.target.name);else return ma(I.target.form,{},null,I.target.name),cancelEvent(I)}pa={};var Ba={};pa[I.target.name]=I.target.value;Ba[I.target.name]=I.target;n.$forms[I.target.form.getAttribute('id')].isValidating=!0;Xb(I.target,pa,Ba,a.rules,function(za){za.isValid()?ma(I.target.form,{},za.data,
457
- I.target.name):ma(I.target.form,za.error,za.data,I.target.name);var Ma=I.target.form,Qa=null,Ra=null,jb=null;jb=hc(bc(Ma,u));Qa=jb.fields;Ra=jb.$fields;var Wa=Ma.getAttribute('id');jb=n.$forms[Wa].rules;n.$forms[Wa].isValidating=!0;Xb(Ma,Qa,Ra,jb,function(Ka){n.$forms[Wa].isValidating=!1;console.debug('['+Wa+'] onSilentGlobalLiveValidation: '+Ka.isValid(),Ka,Qa);var Xa=Ka.isValid();m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),window.ginaToolbar.update('forms',
458
- {id:Wa,errors:Ka.error||{}}));if(!Xa&&Ka.error){n.$forms[b.form.getAttribute('id')].errors=A(za.error,Ka.error);var xb=I.target.name;typeof Ka.error[xb]!='undefined'&&(pb(Ra[xb]),ma(Ma,Ka.error,Ka.data,xb))}else if(Xa&&n.$forms[Wa].errors&&n.$forms[Wa].errors.count()>0)for(xb in Ka=n.$forms[Wa].errors,n.$forms[Wa].errors={},Ka)ma(Ma,{},null,xb);else n.$forms[Wa].errors&&!n.$forms[Wa].errors.count()&&(n.$forms[Wa].errors={},console.debug('resetting field: '+b.name),P[Wa]={},ma(Ma,{},null,b.name));
459
- Zb(Ma,Xa);J=!1})})};if(/^changed\./i.test(I.type)||/^change\./i.test(I.type)&&I.target.type=='radio')return function(pa,Ba){if(!(Ba>0))return++Ba,setTimeout(()=>{console.debug(' changed .... '+b.id);Q()},0)}(J,0);/^focusin\./i.test(I.type)?/\-error/.test(b.parentNode.className)&&!ob&&(console.debug('#1 you just focusin ....'+b.id,b.value,n.$forms[b.form.getAttribute('id')].isValidating),pb(b)):/^focusout\./i.test(I.type)?/\-warning/.test(b.parentNode.className)&&(console.debug('#1 you just focusout ....'+
460
- b.id,b.value),n.$forms[b.form.getAttribute('id')].isValidating=!1,pb(b),ma(b.form,n.$forms[b.form.getAttribute('id')].errors,null,b.name)):/^keyup\./i.test(I.type)?(b.ginaFormValidatorTestedValue=b.value,c=setTimeout(function(){['91','17','16'].indexOf(''+I.keyCode)>-1&&Y.count()==0||(console.debug('[A]['+Y.count()+'] keyup ('+I.keyCode+') .... '+b.id,b.value,' VS ',b.ginaFormValidatorTestedValue+'(old)'),Q())},1E3)):/^change\./i.test(I.type)&&!/^(checkbox)$/i.test(I.target.type)&&(console.debug(' change .... '+
461
- b.id),Q())})}}},yc=function(a,b,c){a.setSelectionRange?(a.focus(),a.setSelectionRange(b,c)):a.createTextRange&&(a=a.createTextRange(),a.collapse(!0),a.moveEnd('character',c),a.moveStart('character',b),a.select())},ic=function(a,b){yc(a,b,b);a._ginaAcCaret=b},pc=function(a){a._ginaAcPending=(a._ginaAcPending||0)+1;a.setAttribute('readonly','readonly');setTimeout(()=>{a.removeAttribute('readonly');setTimeout(()=>{if(typeof a._ginaAcCaret=='number'){var b=a._ginaAcCaret;yc(a,b,b)}a._ginaAcPending--;
455
+ b,h,function(I){I.preventDefault();clearTimeout(c);if(!J&&/^changed\./i.test(I.type)||!J&&/^(radio|checkbox)$/i.test(I.target.type))J=!0;else if(J&&/^changed\./i.test(I.type)||J&&/^(radio|checkbox)$/i.test(I.target.type))return!1;if(typeof n.$forms[I.target.form.getAttribute('id')].isSubmitting!='undefined'&&/true/i.test(n.$forms[I.target.form.getAttribute('id')].isSubmitting))return!1;var R=function(){/^(password)$/i.test(I.target.type)||console.debug('processing: '+I.target.name+'/'+I.target.id);
456
+ if(!/^(radio|checkbox)$/i.test(I.target.type)&&I.target.value===I.target.defaultValue&&I.target.value!=''){var oa=n.$forms[I.target.form.getAttribute('id')].errors;if(oa&&oa.count()!=0)ma(I.target.form,oa,null,I.target.name);else return ma(I.target.form,{},null,I.target.name),cancelEvent(I)}oa={};var Ca={};oa[I.target.name]=I.target.value;Ca[I.target.name]=I.target;n.$forms[I.target.form.getAttribute('id')].isValidating=!0;Xb(I.target,oa,Ca,a.rules,function(za){za.isValid()?ma(I.target.form,{},za.data,
457
+ I.target.name):ma(I.target.form,za.error,za.data,I.target.name);var Ma=I.target.form,Ra=null,Sa=null,jb=null;jb=hc(bc(Ma,u));Ra=jb.fields;Sa=jb.$fields;var Wa=Ma.getAttribute('id');jb=n.$forms[Wa].rules;n.$forms[Wa].isValidating=!0;Xb(Ma,Ra,Sa,jb,function(Ja){n.$forms[Wa].isValidating=!1;console.debug('['+Wa+'] onSilentGlobalLiveValidation: '+Ja.isValid(),Ja,Ra);var Xa=Ja.isValid();m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),window.ginaToolbar.update('forms',
458
+ {id:Wa,errors:Ja.error||{}}));if(!Xa&&Ja.error){n.$forms[b.form.getAttribute('id')].errors=A(za.error,Ja.error);var yb=I.target.name;typeof Ja.error[yb]!='undefined'&&(rb(Sa[yb]),ma(Ma,Ja.error,Ja.data,yb))}else if(Xa&&n.$forms[Wa].errors&&n.$forms[Wa].errors.count()>0)for(yb in Ja=n.$forms[Wa].errors,n.$forms[Wa].errors={},Ja)ma(Ma,{},null,yb);else n.$forms[Wa].errors&&!n.$forms[Wa].errors.count()&&(n.$forms[Wa].errors={},console.debug('resetting field: '+b.name),P[Wa]={},ma(Ma,{},null,b.name));
459
+ Zb(Ma,Xa);J=!1})})};if(/^changed\./i.test(I.type)||/^change\./i.test(I.type)&&I.target.type=='radio')return function(oa,Ca){if(!(Ca>0))return++Ca,setTimeout(()=>{console.debug(' changed .... '+b.id);R()},0)}(J,0);/^focusin\./i.test(I.type)?/\-error/.test(b.parentNode.className)&&!qb&&(console.debug('#1 you just focusin ....'+b.id,b.value,n.$forms[b.form.getAttribute('id')].isValidating),rb(b)):/^focusout\./i.test(I.type)?/\-warning/.test(b.parentNode.className)&&(console.debug('#1 you just focusout ....'+
460
+ b.id,b.value),n.$forms[b.form.getAttribute('id')].isValidating=!1,rb(b),ma(b.form,n.$forms[b.form.getAttribute('id')].errors,null,b.name)):/^keyup\./i.test(I.type)?(b.ginaFormValidatorTestedValue=b.value,c=setTimeout(function(){['91','17','16'].indexOf(''+I.keyCode)>-1&&Y.count()==0||(console.debug('[A]['+Y.count()+'] keyup ('+I.keyCode+') .... '+b.id,b.value,' VS ',b.ginaFormValidatorTestedValue+'(old)'),R())},1E3)):/^change\./i.test(I.type)&&!/^(checkbox)$/i.test(I.target.type)&&(console.debug(' change .... '+
461
+ b.id),R())})}}},yc=function(a,b,c){a.setSelectionRange?(a.focus(),a.setSelectionRange(b,c)):a.createTextRange&&(a=a.createTextRange(),a.collapse(!0),a.moveEnd('character',c),a.moveStart('character',b),a.select())},ic=function(a,b){yc(a,b,b);a._ginaAcCaret=b},pc=function(a){a._ginaAcPending=(a._ginaAcPending||0)+1;a.setAttribute('readonly','readonly');setTimeout(()=>{a.removeAttribute('readonly');setTimeout(()=>{if(typeof a._ginaAcCaret=='number'){var b=a._ginaAcCaret;yc(a,b,b)}a._ginaAcPending--;
462
462
  a._ginaAcPending<=0&&(a._ginaAcPending=0,a._ginaAcCaret=null)},0)},0)},zc=function(a,b){if(document.activeElement&&document.activeElement.form){a=Array.prototype.filter.call(document.activeElement.form.querySelectorAll('a:not([disabled]), button:not([disabled]), input[type=text]:not([disabled]), select:not([disabled]), [tabindex]:not([disabled]):not([tabindex="-1"])'),function(u){return u.offsetWidth>0||u.offsetHeight>0||u===document.activeElement});var c=a.indexOf(document.activeElement);if(c>-1){var h=
463
463
  a[c+1];b&&(h=a[c-1]);(h||a[0]).focus()}}},Hc=function(a,b){a.setAttribute('readonly','readonly');addListener(gina,a,'focusout.'+a.id,function(c){c.preventDefault();clearTimeout(b);c=c.currentTarget;triggerEvent(gina,c,'change.'+c.id);c.setAttribute('readonly','readonly')});addListener(gina,a,'focusin.'+a.id,function(c){c.preventDefault();c.currentTarget.removeAttribute('readonly');var h='keydown.'+c.currentTarget.id;typeof gina.events[h]=='undefined'&&addListener(gina,c.currentTarget,h,function(u){if(!u.metaKey&&
464
464
  !u.ctrlKey){u.preventDefault();clearTimeout(b);var z=u.currentTarget,e=u.currentTarget.value,J=z.selectionStart,I=z.selectionEnd;(z._ginaAcPending||0)>0&&typeof z._ginaAcCaret=='number'&&(J=I=z._ginaAcCaret);z.removeAttribute('readonly');switch(u.keyCode){case 46:z.value=J!=I?e.substring(0,J)+e.substring(I):J==0?e.substring(J+1):e.substring(0,J)+e.substring(I+1);ic(z,J);pc(z);break;case 8:if(J!=I)z.value=e.substring(0,J)+e.substring(I),J==0&&(z.value=e.substring(I));else if(J==0)break;else z.value=
465
465
  e.substring(0,J-1)+e.substring(I);ic(z,J!=I?J:J-1);pc(z);break;case 9:Y[16]&&Y[9]?zc(z,!0):zc(z);break;case 13:case 16:break;case 37:console.debug('moving left ',J-1);ic(z,J>0?J-1:0);break;case 39:J+1<e.length+1&&ic(z,J+1);break;default:u.key.length>1||(J!=I?(z.value=e.substring(0,J)+u.key,I-1<e.length&&(z.value+=e.substring(I))):z.value=J==0?u.key+e.substring(J):e.substring(0,J)+u.key+e.substring(I),ic(z,J+1),pc(z))}}})})},qc=function(a,b){var c=b.tagName.indexOf('-')>-1;if((c||/^(input|textarea)$/i.test(b.tagName))&&
466
466
  typeof gina.events['registered.'+b.id]=='undefined'){c||/^file$/i.test(b.type)||jc(b);switch(b.tagName.toLowerCase()){case 'textarea':xc(a,b,null,!0);break;default:xc(a,b,null,c),c||(a=b.getAttribute('autocomplete'),/safari/i.test(navigator.userAgent)&&!/chrom(e|ium)/i.test(navigator.userAgent)&&a&&/^(off|false)/i.test(a)&&Hc(b,null))}gina.events['registered.'+b.id]=b.id}},mc=function(a,b,c){c=b.id+'-'+c+'-'+a+'-trigger';var h=document.getElementById(c);if(!h){var u=b.getAttribute('data-gina-form-upload-'+
467
467
  a+'-trigger');u&&(c=u,h=document.getElementById(c))}h&&typeof h.isBinded=='undefined'||h&&typeof h.isBinded!='undefined'&&!/true/i.test(h.isBinded)?(addListener(gina,h,'click',function(z){z.preventDefault();lb(b,a)}),/^a$/i.test(h.tagName)&&addListener(gina,h,'keydown',function(z){if(z.key===' '||z.keyCode===32)z.preventDefault(),lb(b,a)}),h.isBinded=!0):console.warn('[FormValidator::bindForm][upload]['+b.id+'] : did not find `upload '+a+' trigger`.\nPlease, make sure that your '+a+' element ID is `'+
468
- c+'`, or add to your file input ('+b.id+') -> `data-gina-form-upload-'+a+'-trigger="your-custom-id"` definition.')},Ic=function(a,b){var c=function(h,u,z){var e=null;switch(u){case 'data-gina-form-upload-action':e='upload-to-tmp-xml';break;case 'data-gina-form-upload-reset-action':e='upload-delete-from-tmp-xml'}var J=h.getAttribute(u);if(!J||J=='')if(e){var I=null;try{J=W.getRoute(e)}catch(Q){I=Q}J?(console.info('Ignore previous warnings regarding upload. I have found a default `'+u+'` route: `'+
468
+ c+'`, or add to your file input ('+b.id+') -> `data-gina-form-upload-'+a+'-trigger="your-custom-id"` definition.')},Ic=function(a,b){var c=function(h,u,z){var e=null;switch(u){case 'data-gina-form-upload-action':e='upload-to-tmp-xml';break;case 'data-gina-form-upload-reset-action':e='upload-delete-from-tmp-xml'}var J=h.getAttribute(u);if(!J||J=='')if(e){var I=null;try{J=W.getRoute(e)}catch(R){I=R}J?(console.info('Ignore previous warnings regarding upload. I have found a default `'+u+'` route: `'+
469
469
  e+'@'+J.bundle+'`'),h.setAttribute(u,J.toUrl())):(h='`'+u+'` needs to be defined to proceed for your `input[type=file]` with ID `'+h.id+'`\n'+I+'\n',z&&(z.innerHTML+=h.replace(/(\n|\r)/g,'<br>')),console.error(h))}else console.debug('`'+u+'` not declared for `'+h.id+'` (no framework default; optional until a delete is triggered).')};c(a,'data-gina-form-upload-action',b);c(a,'data-gina-form-upload-reset-action',b);c(a,'data-gina-form-upload-delete-action',b)},Gc=function(a,b,c){var h=null;typeof this.target!=
470
- 'undefined'&&/FORM/i.test(this.target.tagName)?h=this.target.getAttribute('id'):/string/i.test(typeof a)&&(h=a);if(typeof n.$forms[h]!='undefined')a=n.$forms[h];else throw Error('form instance `'+h+'` not found');Aa(h);nc(a.target);typeof rule!='undefined'?Yb(a.target,b):Yb(a.target);return c?c(a):a},wc=function(a,b){var c=0,h=this&&typeof this.$forms!='undefined'?this:n;b=b&&b.deferFormId?b.deferFormId:null;if(!a||typeof a.getElementsByTagName!='function')return c;a=Array.prototype.slice.call(a.getElementsByTagName('form'));
471
- for(var u=0,z=a.length;u<z;++u){var e=a[u];if(N(e,T)){var J=e.getAttribute('id')||'form.'+E();J!==e.getAttribute('id')&&e.setAttribute('id',J);if(!b||J!==b){var I=n.$forms[J];if(!I||I.target!==e){if(I&&I.target&&I.target!==e)try{tb(J)}catch(Q){typeof console!='undefined'&&console.warn&&console.warn('[gina][validator] bindRegion: could not retire stale form `'+J+'`: '+(Q.message||Q)),delete n.$forms[J]}Cb.call(h,J);c++}}}}return c},nc=function(a){var b=null,c=null;try{if(a.getAttribute&&a.getAttribute('id'))if(c=
470
+ 'undefined'&&/FORM/i.test(this.target.tagName)?h=this.target.getAttribute('id'):/string/i.test(typeof a)&&(h=a);if(typeof n.$forms[h]!='undefined')a=n.$forms[h];else throw Error('form instance `'+h+'` not found');Ba(h);nc(a.target);typeof rule!='undefined'?Yb(a.target,b):Yb(a.target);return c?c(a):a},wc=function(a,b){var c=0,h=this&&typeof this.$forms!='undefined'?this:n;b=b&&b.deferFormId?b.deferFormId:null;if(!a||typeof a.getElementsByTagName!='function')return c;a=Array.prototype.slice.call(a.getElementsByTagName('form'));
471
+ for(var u=0,z=a.length;u<z;++u){var e=a[u];if(M(e,U)){var J=e.getAttribute('id')||'form.'+E();J!==e.getAttribute('id')&&e.setAttribute('id',J);if(!b||J!==b){var I=n.$forms[J];if(!I||I.target!==e){if(I&&I.target&&I.target!==e)try{ub(J)}catch(R){typeof console!='undefined'&&console.warn&&console.warn('[gina][validator] bindRegion: could not retire stale form `'+J+'`: '+(R.message||R)),delete n.$forms[J]}Cb.call(h,J);c++}}}}return c},nc=function(a){var b=null,c=null;try{if(a.getAttribute&&a.getAttribute('id'))if(c=
472
472
  a.getAttribute('id'),typeof n.$forms[c]!='undefined')b=n.$forms[c];else throw Error('form instance `'+c+'` not found');else if(typeof a.target!='undefined')b=a,c=a.getAttribute&&a.getAttribute('id')?b.getAttribute('id'):b.id;else throw Error('Validator::unbindForm($target): `$target` must be a DOM element\n'+err.stack);}catch(e){throw Error('Validator::unbindForm($target) could not unbind form `'+a+'`\n'+e.stack);}if(typeof b!='undefined'&&!b.binded)return b;removeListener(gina,b,'success.'+c);removeListener(gina,
473
473
  b,'error.'+c);b.target.getAttribute('data-gina-form-event-on-submit-success')&&removeListener(gina,b,'success.'+c+'.hform');b.target.getAttribute('data-gina-form-event-on-submit-error')&&removeListener(gina,b,'error.'+c+'.hform');b.target.getAttribute('data-gina-form-event-on-swap')&&removeListener(gina,b,'afterswap.'+c+'.hform');removeListener(gina,b,'validate.'+c);removeListener(gina,b,'validated.'+c);removeListener(gina,b,'submit.'+c);removeListener(gina,b,'reset.'+c);a=[];c=b.target.getElementsByTagName('button');
474
- if(c.length>0)for(let e=0,J=c.length;e<J;++e)a.push(c[e]);c=b.target.getElementsByTagName('a');if(c.length>0)for(let e=0,J=c.length;e<J;++e)a.push(c[e]);c=b.target.getElementsByTagName('input');if(c.length>0)for(let e=0,J=c.length;e<J;++e)if(/^(hidden)$/i.test(c[e].type)||a.push(c[e]),/^(file)$/i.test(c[e].type)){var h=c[e].getAttribute('data-gina-form-virtual');if(h){var u=V(h).target;if(u){a.push(u);for(let I=0,Q=U.length;I<Q;I++){var z=U[I];typeof gina.events[z+'.'+h+'.hform']!='undefined'&&gina.events[z+
475
- '.'+h+'.hform']==h&&removeListener(gina,u,z+'.'+h+'.hform')}}}}else for(let I=0,Q=U.length;I<Q;I++)h=U[I]+'.'+c[e].id,typeof gina.events[h]!='undefined'&&gina.events[h]==c[e].id&&removeListener(gina,c[e],h),h=U[I],typeof gina.events[h]!='undefined'&&gina.events[h]==c[e].id&&removeListener(gina,c[e],h),h=c[e].id,typeof gina.events[h]!='undefined'&&gina.events[h]==c[e].id&&removeListener(gina,c[e],h);c=b.target.getElementsByTagName('textarea');if(c.length>0)for(let e=0,J=c.length;e<J;++e)a.push(c[e]);
476
- c=b.target.getElementsByTagName('form');if(c.length>0)for(let e=0,J=c.length;e<J;++e)a.push(c[e]);a.push(b.target);for(let e=0,J=a.length;e<J;++e){c=a[e];h=c.getAttribute('id');for(let I=0,Q=U.length;I<Q;I++)z=u=U[I],typeof gina.events[z]!='undefined'&&gina.events[z]==h&&removeListener(gina,c,z),z=h,typeof gina.events[z]!='undefined'&&gina.events[z]==h&&removeListener(gina,c,z),z=u+'.'+h,typeof gina.events[z]!='undefined'&&gina.events[z]==h&&removeListener(gina,c,z),z=u+'.'+h,typeof gina.events[z]!=
474
+ if(c.length>0)for(let e=0,J=c.length;e<J;++e)a.push(c[e]);c=b.target.getElementsByTagName('a');if(c.length>0)for(let e=0,J=c.length;e<J;++e)a.push(c[e]);c=b.target.getElementsByTagName('input');if(c.length>0)for(let e=0,J=c.length;e<J;++e)if(/^(hidden)$/i.test(c[e].type)||a.push(c[e]),/^(file)$/i.test(c[e].type)){var h=c[e].getAttribute('data-gina-form-virtual');if(h){var u=Q(h).target;if(u){a.push(u);for(let I=0,R=V.length;I<R;I++){var z=V[I];typeof gina.events[z+'.'+h+'.hform']!='undefined'&&gina.events[z+
475
+ '.'+h+'.hform']==h&&removeListener(gina,u,z+'.'+h+'.hform')}}}}else for(let I=0,R=V.length;I<R;I++)h=V[I]+'.'+c[e].id,typeof gina.events[h]!='undefined'&&gina.events[h]==c[e].id&&removeListener(gina,c[e],h),h=V[I],typeof gina.events[h]!='undefined'&&gina.events[h]==c[e].id&&removeListener(gina,c[e],h),h=c[e].id,typeof gina.events[h]!='undefined'&&gina.events[h]==c[e].id&&removeListener(gina,c[e],h);c=b.target.getElementsByTagName('textarea');if(c.length>0)for(let e=0,J=c.length;e<J;++e)a.push(c[e]);
476
+ c=b.target.getElementsByTagName('form');if(c.length>0)for(let e=0,J=c.length;e<J;++e)a.push(c[e]);a.push(b.target);for(let e=0,J=a.length;e<J;++e){c=a[e];h=c.getAttribute('id');for(let I=0,R=V.length;I<R;I++)z=u=V[I],typeof gina.events[z]!='undefined'&&gina.events[z]==h&&removeListener(gina,c,z),z=h,typeof gina.events[z]!='undefined'&&gina.events[z]==h&&removeListener(gina,c,z),z=u+'.'+h,typeof gina.events[z]!='undefined'&&gina.events[z]==h&&removeListener(gina,c,z),z=u+'.'+h,typeof gina.events[z]!=
477
477
  'undefined'&&gina.events[z]==z&&removeListener(gina,c,z),z=u+'.'+h+'.hform',typeof gina.events[z]!='undefined'&&gina.events[z]==h&&removeListener(gina,c,z)}evt=null;if(Array.isArray(b.reassociatedListeners)){for(let e=0,J=b.reassociatedListeners.length;e<J;e++)(a=b.reassociatedListeners[e])&&a.el&&a.el.removeEventListener?a.el.removeEventListener(a.evt,a.fn,!1):a&&a.el&&a.el.detachEvent&&a.el.detachEvent('on'+a.evt,a.fn);b.reassociatedListeners=[]}b.stagedUploadWait=null;b.binded=!1;return b},fc=
478
478
  function(a,b){b=b.name;if(!a[b])for(let c in a)if(/^\//.test(c)&&(re=c.match(/\/(.*)\//).pop(),flags=c.replace('/'+re+'/',''),re=re.replace(/\[/g,'\\[').replace(/\]/g,'\\]'),re=new RegExp(re,flags),re.test(b))){a[b]=a[c];break}},Ac=function(a,b){return a.getAttribute('value')===null||/^(true|false)$/.test(a.value)||typeof b!='undefined'&&b&&typeof b.isBoolean!='undefined'?!0:!1},kc=function(a){return/^true$/i.test(a.target.dataset.ginaFormCheckboxValueAsState)?!0:!1},lc={},Yb=function(a,b){var c=
479
- null,h=null,u=typeof(T.count()>0)?T:n.rules;h=typeof a=='undefined'&&typeof this.target!='undefined'&&/FORM/i.test(this.target.tagName)||!/object/i.test(typeof a)?this.target.id||this.target.getAttribute('id'):/string/i.test(typeof a)?a:a.getAttribute('id');try{if(typeof n.$forms[h]!='undefined'){c=n.$forms[h];if(typeof c.target=='undefined')throw Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n');a=c.target}else throw Error('form instance `'+h+'` not found');}catch(p){throw Error('Validator::bindForm($target, customRule) could not bind form `'+
479
+ null,h=null,u=typeof(U.count()>0)?U:n.rules;h=typeof a=='undefined'&&typeof this.target!='undefined'&&/FORM/i.test(this.target.tagName)||!/object/i.test(typeof a)?this.target.id||this.target.getAttribute('id'):/string/i.test(typeof a)?a:a.getAttribute('id');try{if(typeof n.$forms[h]!='undefined'){c=n.$forms[h];if(typeof c.target=='undefined')throw Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n');a=c.target}else throw Error('form instance `'+h+'` not found');}catch(p){throw Error('Validator::bindForm($target, customRule) could not bind form `'+
480
480
  a+'`\n'+p.stack);}gb(a);var z=!1,e=null,J='',I=null;typeof b!='undefined'||typeof h=='string'&&typeof u[h.replace(/\-|\//g,'.')]!='undefined'?(z=!0,e=b&&typeof b=='object'?b:b&&typeof b=='string'&&typeof u[b.replace(/\-|\//g,'.')]!='undefined'?wb(b.replace(/\-|\//g,'.')):wb(h.replace(/\-|\//g,'.')),c.rules=e,m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.rules||(gina.forms.rules={}),objCallback={id:h,rules:c.rules},window.ginaToolbar.update('forms',objCallback))):c.rules=
481
- {};typeof c.target.dataset.ginaFormLiveCheckEnabled=='undefined'&&c.rules.count()>0?c.target.dataset.ginaFormLiveCheckEnabled=!0:c.target.dataset.ginaFormLiveCheckEnabled=typeof c.target.dataset.ginaFormLiveCheckEnabled!='undefined'?/^true$/i.test(c.target.dataset.ginaFormLiveCheckEnabled)?!0:!1:!1;c.fieldsSet||(c.fieldsSet={});Array.isArray(c.reassociatedListeners)||(c.reassociatedListeners=[]);b=function(p,M){var ea=[],na=M.toUpperCase();for(let Ca=0,Pa=p.elements.length;Ca<Pa;Ca++){let Ha=p.elements[Ca];
482
- Ha.tagName===na&&ea.push(Ha)}M=p.getElementsByTagName(M);for(let Ca=0,Pa=M.length;Ca<Pa;Ca++)na=M[Ca],na.form===p&&ea.indexOf(na)===-1&&ea.push(na);return ea};I=null;a.getElementsByTagName('a');var Q=b(a,'input'),pa=b(a,'textarea');I=b(a,'select');var Ba=function(p){var M=[];for(let ea=0,na=p.elements.length;ea<na;ea++){let Ca=p.elements[ea];Ca.tagName.indexOf('-')>-1&&M.push(Ca)}return M}(a),za={},Ma=[],Qa={},Ra=null,jb={},Wa=null,Ka=null;for(let p=0,M=pa.length;p<M;++p)fc(c.rules,pa[p]),Ka=pa[p].getAttribute('id'),
483
- Ka&&Ka!=''||(Ka='textareas.'+E(),pa[p].setAttribute('id',Ka)),c.fieldsSet[Ka]||(c.fieldsSet[Ka]={id:Ka,name:pa[p].name||null,value:pa[p].value||'',defaultValue:pa[p].value||''}),/^true$/i.test(c.target.dataset.ginaFormLiveCheckEnabled)&&qc(c,pa[p]);for(let p=0,M=Ba.length;p<M;++p){if(typeof Ba[p].form=='undefined'||Ba[p].form==null)try{Object.defineProperty(Ba[p],'form',{value:c.target,configurable:!0,writable:!0})}catch(ea){}if((typeof Ba[p].name=='undefined'||!Ba[p].name)&&Ba[p].getAttribute('name'))try{Object.defineProperty(Ba[p],
484
- 'name',{value:Ba[p].getAttribute('name'),configurable:!0,writable:!0})}catch(ea){}fc(c.rules,Ba[p]);Ka=Ba[p].getAttribute('id');Ka&&Ka!=''||(Ka='face.'+E(),Ba[p].setAttribute('id',Ka));c.fieldsSet[Ka]||(Ra=Ba[p].value||'',c.fieldsSet[Ka]={id:Ka,name:Ba[p].getAttribute('name')||null,value:Ba[p].value||'',defaultValue:Ra});/^true$/i.test(c.target.dataset.ginaFormLiveCheckEnabled)&&qc(c,Ba[p])}for(let p=0,M=Q.length;p<M;++p){fc(c.rules,Q[p]);Ka=Q[p].getAttribute('id');Ka&&Ka!=''||(Ka='input.'+E(),Q[p].setAttribute('id',
485
- Ka));c.fieldsSet[Ka]||(Ra=Q[p].value,c.fieldsSet[Ka]={id:Ka,name:Q[p].name||null,value:Ra||!/^(checkbox|radio)$/i.test(Q[p].type)?'':Q[p].checked,defaultValue:/^(checkbox|radio)$/i.test(Q[p].type)?Q[p].checked:Ra},/^(checkbox|radio)$/i.test(Q[p].type)&&typeof c.fieldsSet[Ka].defaultChecked=='undefined'&&(c.fieldsSet[Ka].defaultChecked=Q[p].defaultChecked||kc(c)&&/^(true|on)$/.test(Ra)&&/^(checkbox)$/i.test(Q[p].type)?!0:!1,/^radio$/i.test(Q[p].type)&&(c.fieldsSet[Ka].value=Q[p].value,c.fieldsSet[Ka].defaultValue=
486
- Q[p].value),!/^(checkbox)$/i.test(Q[p].type)||kc(c)||typeof c.target.dataset.ginaFormCheckboxValueAsState!='undefined'||Q[p].hasAttribute('checked')||!/^(true|on)$/i.test(Q[p].getAttribute('value'))||lc[Ka]||(lc[Ka]=!0,console.warn('[ FormValidator ] checkbox `'+Ka+'`: `value` no longer implies the checked state; add the `checked` attribute if it must render ticked, or set `data-gina-form-checkbox-value-as-state="true"` on the form to restore the legacy behavior. If the unticked rendering is intended, remove the `value` attribute (a boolean checkbox posts its live checked state either way), or set `data-gina-form-checkbox-value-as-state="false"` on the form to declare the current model and silence migration warnings')),
487
- Ra=Q[p].getAttribute('data-value')||Q[p].getAttribute('value')||Q[p].value,!/^(checkbox)$/i.test(Q[p].type)||kc(c)||typeof c.target.dataset.ginaFormCheckboxValueAsState!='undefined'||!Q[p].hasAttribute('checked')||Ra!==''&&!/^false$/i.test(Ra)||lc[Ka]||(lc[Ka]=!0,console.warn('[ FormValidator ] checkbox `'+Ka+'`: `value` no longer un-ticks a checked box; remove the `checked` attribute if it must render unticked, or set `data-gina-form-checkbox-value-as-state="true"` on the form to restore the legacy behavior. If the ticked rendering is intended, set `data-gina-form-checkbox-value-as-state="false"` on the form to declare the current model and silence migration warnings'))));
488
- /^true$/i.test(c.target.dataset.ginaFormLiveCheckEnabled)&&qc(c,Q[p]);if(Ra=Q[p].getAttribute('data-gina-form-element-group'))Ma.indexOf(Ra)<0&&Ma.push(Ra),Ba=Q[p].getAttribute('name')||Ka,Ba===Ka&&Q[p].setAttribute('name',Ka),za[Ka]={id:Ka,name:Ba,group:Ra,target:Q[p]},Qa[Q[p].name]=new RegExp('^'+Ra.replace(/[.*+?^${}()|[\]\\]/g,'\\$&')),z&&(typeof c.rules[Q[p].name]=='undefined'&&(c.rules[Q[p].name]={}),typeof c.rules[Q[p].name].isRequired!='undefined'&&c.rules[Q[p].name].isRequired||(c.rules[Q[p].name].exclude=
489
- !0));if(Qa.count()>0)for(var Xa in Qa)Q[p].name!=Xa&&(Q[p].getAttribute('data-gina-form-element-group'),Qa[Xa].test(Q[p].name)&&(Q[p].disabled=!0,typeof jb[Xa]=='undefined'&&(jb[Xa]={}),jb[Xa][Q[p].name]=Q[p]));if(/^file$/i.test(Q[p].type)){Ka=Q[p].getAttribute('data-gina-form-upload-trigger');Ka||(Ka=Q[p].id);Ra=null;Wa=(new DOMParser).parseFromString(a.innerHTML,'text/html');Ka&&(Ra=document.getElementById(Ka));Ba=document.getElementById(Q[p].id+'-error');Ic(Q[p],Ba);if((Wa=Wa.getElementById(Ka+
490
- '-preview'))&&Ra&&!/none/i.test(window.getComputedStyle(Wa).display)&&!/none/i.test(Wa.parentElement.style.display)){Ba=0;console.debug('preview is visible ...');Ra.customFiles=[];Ra.form=a;Wa=Wa.childNodes;for(let ea=0,na=Wa.length;ea<na;ea++)if(pa=null,/ul/i.test(Wa[ea].tagName))for(let Ca=0,Pa=Wa[ea].length;Ca<Pa;Ca++){let Ha=$$els[ea];for(let Sa=0,mb=Ha.length;Sa<mb;Sa++)/img/i.test(Ha[Sa])&&(pa=Ha[Sa],pa.setAttribute(''),Ba++)}else/img/i.test(Wa[ea].tagName)&&(pa=Wa[ea],deleteLinkId=Ka+'-'+Ba+
491
- '-delete-trigger',pa=pa.src.substring(pa.src.lastIndexOf('/')+1),Ra.customFiles.push({name:pa,deleteLinkId}),mc('delete',Ra,Ba),Ba++)}va(Q[p]);addListener(gina,Q[p],'change',function(ea){ea.preventDefault();var na=ea.currentTarget;ea=na.files;na.customFiles=Array.from(ea);if(!ea.length)return!1;var Ca=na.getAttribute('data-gina-form-upload-action'),Pa=na.getAttribute('name'),Ha='gina-upload-'+Pa.replace(/\[/g,'-').replace(/\]/g,'-'+c.id)+(/\]/.test(Pa)?'':'-'+c.id);na.setAttribute('data-gina-form-virtual',
492
- Ha);var Sa=na.getAttribute('data-gina-form-upload-on-success'),mb=na.getAttribute('data-gina-form-upload-on-error'),Hb=na.getAttribute('data-gina-form-upload-on-progress'),rb=na.getAttribute('data-gina-form-upload-error')||(na.id?na.id+'-error':null),Bb=typeof gina.popin!='undefined'&&gina.popin&&typeof gina.popin.getPopinContaining=='function'?gina.popin.getPopinContaining(na.form||na):null;var sb=na.form,Ub;if(m&&!Bb&&typeof gina.popin!='undefined'&&gina.popin&&(Ub=typeof gina.popin.getActivePopin==
493
- 'function'?gina.popin.getActivePopin():null)&&Ub.isOpen)try{console.warn('[FormValidator][popin] the staged upload of `#'+(na&&na.id?na.id:'')+'` (form `#'+(sb&&sb.id?sb.id:'')+'`) is placed with its own form: the form is not inside popin `'+Ub.name+'`, which is open (the former rule would have placed the upload inside it and its metadata would never have reached the form).')}catch(rc){}if(ea.length>0){Bb?(Bb.$target=(new DOMParser).parseFromString(Bb.target.outerHTML,'text/html'),Bb.$target.getElementById(Bb.id).innerHTML=
494
- document.getElementById(Bb.id).innerHTML,sb=Bb.$target.getElementById(Ha)):sb=document.getElementById(Ha);if(!sb){if((Ub=n.$forms[Ha]||null)&&Ub.target&&Ub.target.isConnected)sb=Ub.target;else if(Ub){try{Ub.destroy()}catch(rc){}delete n.$forms[Ha]}sb||=Bb?Bb.$target.createElement('form'):document.createElement('form');sb.id=Ha;sb.action=Ca;sb.enctype='multipart/form-data';sb.method='POST';if(typeof na.form!='undefined'){Ca='files';var Ib=na.getAttribute('data-gina-form-upload-prefix')||na.name||na.getAttribute('name'),
495
- $b=na.id||na.getAttribute('id');Ub=!1;var Jc=na.getAttribute('data-gina-form-upload-progress')||($b?$b+'-progress':null),Kc=na.getAttribute('data-gina-form-upload-dropzone')||null;$b=na.getAttribute('data-gina-form-upload-preview')||$b+'-preview';$b=Bb?Bb.$target.getElementById($b):document.getElementById($b);typeof $b!='undefined'&&$b&&(Ub=!0);Ib&&(Ca=Ib);Ib=[];for(var cc='name group originalFilename ext encoding size height width location mime preview'.split(' '),sc=na.form.getElementsByTagName('INPUT'),
496
- Vb,Pb,tc,ac,Fb=0,Lc=ea.length;Fb<Lc;++Fb){mc('reset',na,Fb);Ib[Fb]=null;Vb=Ca+'['+Fb+']';ac=new RegExp('^'+Vb.replace(/\[/g,'\\[').replace(/\]/g,'\\]'));for(var dc=0,Mc=sc.length;dc<Mc;++dc)(Vb=sc[dc].getAttribute('type'))&&/hidden/i.test(Vb)&&(Pb=sc[dc],Vb=/\[\w+\]$/i.test(Pb.name)?Pb.name.match(/\[\w+\]$/)[0].replace(/\[|\]/g,''):Pb.name,tc=/\[\w+\]$/i.test(Pb.name)?Pb.name.match(/\[\w+\]$/)[0].replace(/\[|\]/g,''):Pb.name,Pb&&typeof Vb!='undefiend'&&cc.indexOf(Vb)>-1&&ac.test(Pb.name)?(Ib[Fb]||
497
- (Ib[Fb]={}),/\[preview\]/i.test(Pb.name)?(typeof Ib[Fb].preview=='undefined'&&(Ib[Fb].preview={}),Ib[Fb].preview[Vb]=Pb):Ib[Fb][Vb]=Pb):Pb&&typeof Vb!='undefiend'&&cc.indexOf(Vb)<0&&ac.test(Pb.name)&&(Ib[Fb]||(Ib[Fb]={}),/\[preview\]/i.test(Pb.name)?(typeof Ib[Fb].preview=='undefined'&&(Ib[Fb].preview={}),Ib[Fb].preview[tc]=Pb):Ib[Fb][tc]=Pb));ac=0;for(dc=cc.length;ac<dc;++ac)Ib[Fb]||(Ib[Fb]={}),typeof Ib[Fb][cc[ac]]=='undefined'&&(cc[ac]=='preview'?Ib[Fb].preview={}:(Vb=Ca+'['+Fb+']['+cc[ac]+']',
498
- $newVirtualField=document.createElement('input'),$newVirtualField.type='hidden',$newVirtualField.id='input.'+E(),$newVirtualField.name=Vb,$newVirtualField.value='',na.form.appendChild($newVirtualField),Ib[Fb][cc[ac]]=na.form[na.form.length-1]))}sb.uploadProperties={id:na.form.id||na.getAttribute('id'),uploadTriggerId:na.id,$form:na.form,errorField:rb,progressContainer:Jc,dropzoneContainer:Kc,mandatoryFields:cc,uploadFields:Ib,hasPreviewContainer:Ub,isPopinContext:!!Bb};Ub&&(sb.uploadProperties.previewContainer=
499
- $b)}Sa?sb.setAttribute('data-gina-form-event-on-submit-success',Sa):sb.setAttribute('data-gina-form-event-on-submit-success','onGenericXhrResponse');mb?sb.setAttribute('data-gina-form-event-on-submit-error',mb):sb.setAttribute('data-gina-form-event-on-submit-error','onGenericXhrResponse');Hb&&sb.setAttribute('data-gina-form-event-on-upload-progress',Hb);sb.setAttribute('data-gina-form-sync','replace');Bb?document.getElementById(Bb.id).appendChild(sb):document.body.appendChild(sb)}sb.uploadProperties&&
500
- sb.uploadProperties.progressContainer&&B(sb.uploadProperties.progressContainer,'preparing');sb.uploadProperties&&sb.uploadProperties.uploadTriggerId&&(na=document.getElementById(sb.uploadProperties.uploadTriggerId))&&na.form&&ja(na.form,da('uploadStarted'));try{var Nc=V(Ha),Bc=new FormData;Ha=null;na=0;for(var Oc=ea.length;na<Oc;++na)Ha=ea[na],Bc.append(Pa,Ha,Ha.name);Nc.send(Bc,{withCredentials:!0})}catch(rc){throw rc;}}})}}var xb=function(p,M){p.setAttribute('data-value',p.value);if(/^(true)$/i.test(M.target.dataset.ginaFormLiveCheckEnabled)&&
501
- M.rules.count()>0){var ea={},na={},Ca=null;Ca=p.form;ea[event.target.name]=event.target.value;na[event.target.name]=event.target;n.$forms[Ca.getAttribute('id')].isValidating=!0;Xb(event.target,ea,na,M.rules,function(Pa){n.$forms[Ca.getAttribute('id')].isValidating=!1;Pa.isValid()?ma(Ca,{},Pa.data,event.target.name):ma(Ca,Pa.error,Pa.data,event.target.name);var Ha=Ca,Sa=Pa=null,mb=null;Sa=hc(bc(Ha,u));Pa=Sa.fields;Sa=Sa.$fields;var Hb=Ha.getAttribute('id');mb=n.$forms[Hb].rules;n.$forms[Hb].isValidating=
502
- !0;Xb(Ha,Pa,Sa,mb,function(rb){n.$forms[Hb].isValidating=!1;console.debug('[updateSelect]: onSilentGlobalLiveValidation: '+rb.isValid(),rb);var Bb=rb.isValid();if(!Bb){n.$forms[Hb].errors=rb.error;var sb=event.target.name;typeof rb.error[sb]!='undefined'&&ma(Ha,rb.error,rb.data,sb)}else if(Bb&&n.$forms[Hb].errors&&n.$forms[Hb].errors.count()>0)for(sb in rb=n.$forms[Hb].errors,n.$forms[Hb].errors={},rb)ma(Ha,{},null,sb);Zb(Ha,Bb);once=!1})})}};Ra=jb=null;Xa=0;for(Qa=I.length;Xa<Qa;++Xa)if(fc(c.rules,
503
- I[Xa]),Ka=I[Xa].getAttribute('id'),!Ka||!/^gina\-toolbar/.test(Ka)){Ka&&Ka!=''||(Ka='select.'+E(),I[Xa].setAttribute('id',Ka));if(Ra=I[Xa].getAttribute('data-gina-form-element-group'))jb=I[Xa].getAttribute('name')||Ka,jb===Ka&&I[Xa].setAttribute('name',Ka),za[Ka]={id:Ka,name:jb,group:Ra,target:I[Xa]};addListener(gina,I[Xa],'change',function(p){p=p.target;/select/i.test(p.type)&&xb(p,c)});if(I[Xa].options&&!c.fieldsSet[Ka]){jb=0;if(Ra=I[Xa].getAttribute('data-value')||null)for(Ba=0,Wa=I[Xa].options.length;Ba<
504
- Wa;++Ba)if(I[Xa].options[Ba].value==Ra){jb=Ba;I[Xa].selectedIndex=jb;break}typeof I[Xa].options[I[Xa].selectedIndex]!='undefined'&&I[Xa].options[I[Xa].selectedIndex].index&&(jb=I[Xa].options[I[Xa].selectedIndex].index);I[Xa].options.length>0&&typeof I[Xa].options[jb]!='undefined'&&(Ra=I[Xa].options[jb].value);c.fieldsSet[Ka]={id:Ka,name:I[Xa].name||null,value:Ra||null,selectedIndex:jb||0};typeof I[Xa].selectedIndex!='undefined'&&I[Xa].selectedIndex>-1&&(I[Xa].options[jb].selected=!0,I[Xa].setAttribute('data-value',
505
- I[Xa].options[jb].value))}}var hb=function(p,M,ea,na){typeof na=='undefined'&&(na=!1);if(typeof za[p]=='undefined')throw Error('Radio & Checkbox dependencies not met: you must use the ID attribue of the `master element` as the `data-gina-form-element-group`');var Ca=p.replace(/\-|_|@|#|\.|\[|\]/g,'\\$&');p=za[p].target.checked;for(let Sa in za)if(!/radio|checkbox/i.test(za[Sa].target.type)){var Pa=new RegExp(Ca);var Ha=new RegExp(M);if(Pa.test(za[Sa].group)&&Ha.test(za[Sa].group)||Pa.test(za[Sa].group))za[Sa].target.disabled=
506
- !0,typeof c.rules[za[Sa].name]=='undefined'&&(c.rules[za[Sa].name]={}),c.rules[za[Sa].name].exclude=!0,na?(za[Sa].target.disabled=p?!1:!0,c.rules[za[Sa].name].exclude=p?!1:!0):(za[Sa].target.disabled=ea,c.rules[za[Sa].name].exclude=ea)}},bb=function(p,M,ea,na){typeof na=='undefined'&&(na=!1);if(na&&typeof za[M.id]!='undefined')return p=/true/i.test(M.checked)?!1:!0,hb(M.id,za[M.id].group,p,na);ea=M.name;z&&typeof p.rules[ea]=='undefined'&&(p.rules[ea]={});/^true$/i.test(M.checked)?z&&(p.rules[ea].exclude=
507
- !1,typeof za[M.id]!='undefined'&&hb(M.id,za[M.id].group,!1,na)):z&&(p.rules[ea].exclude=!0,typeof za[M.id]!='undefined'&&hb(M.id,za[M.id].group,!0,na))},Ob=function(p,M){typeof M=='undefined'&&(M=!1);var ea=function(Sa,mb,Hb){if(mb)bb(c,Sa,mb);else for(let rb in za)if(Ha.test(za[rb].group)||Ha.test(za[rb].target.getAttribute('data-gina-form-element-group')))za[rb].target.disabled=Hb};M&&/^(on)$/i.test(p.value)&&!p.checked&&(p.value=!1);var na=p.getAttribute('data-value')||p.getAttribute('value')||
508
- p.value;na=/^(true|on)$/.test(na)?!0:na;na===''&&(na=!1);var Ca=/^(true|on|false)$/i.test(na)?!0:!1;M&&Ca&&kc(c)&&(/^true$/i.test(na)&&!p.checked?p.checked=!0:/^false$/i.test(na)&&p.checked&&(p.checked=!1));na=p.checked;var Pa=p.getAttribute('data-gina-form-element-group')||null,Ha=new RegExp(p.id.replace(/\-|_|@|#|\.|\[|\]/g,'\\$&'));na&&na!='null'&&na!='false'&&na!=''?(M?Qb(p):(setTimeout(function(){p.checked=!0;ea(p,Pa,!1);Qb(p)},0),p.setAttribute('checked','checked')),Ca&&(p.value=!0,p.setAttribute('value',
509
- !0),typeof(p.getAttribute('data-value')!='undefined')&&p.setAttribute('data-value',!0))):(M?Qb(p):setTimeout(function(){p.checked=!1;ea(p,Pa,!0);Qb(p)},0),p.removeAttribute('checked'),Ca&&(p.value=!1,p.setAttribute('value','false'),typeof(p.getAttribute('data-value')!='undefined')&&p.setAttribute('data-value','false')))},Qb=function(p){p=new RegExp(p.id.replace(/\-|_|@|#|\.|\[|\]/g,'\\$&'));for(let M in za)(/checkbox/i.test(za[M].target.type)&&p.test(za[M].group)||/checkbox/i.test(za[M].target.type)&&
510
- p.test(za[M].target.getAttribute('data-gina-form-element-group')))&&bb(c,za[M].target,za[M].group,!0)},Rb=function(p,M){M=p.id.replace(/\-|_|@|#|\.|\[|\]/g,'\\$&');M=new RegExp(M);for(let ea in za)if(/checkbox|radio/i.test(za[ea].target.type)||(za[ea].target.disabled=!0,typeof c.rules[za[ea].name]=='undefined'&&(c.rules[za[ea].name]={}),c.rules[za[ea].name].exclude=!0),M.test(za[ea].group)||M.test(za[ea].target.getAttribute('data-gina-form-element-group').replace(/\-|_|@|#|\.|\[|\]/g,'\\$&')))za[ea].target.disabled=
511
- !0,typeof c.rules[za[ea].name]=='undefined'&&(c.rules[za[ea].name]={}),/^(true|on)$/i.test(p.checked)?(za[ea].target.disabled=!1,c.rules[za[ea].name].exclude=!1):(za[ea].target.disabled=!0,c.rules[za[ea].name].exclude=!0);Qb(p)},Nb=null,eb=function(p,M,ea){M=typeof M!='undefined'&&M?!0:!1;ea=typeof ea!='undefined'&&ea?!0:!1;M&&!p.checked&&p.hasAttribute('checked')&&(p.checked=!0);var na=p.checked,Ca=/^(true|false)$/i.test(p.value),Pa=document.getElementsByName(p.name);Nb=Array.prototype.filter.call(Pa,
512
- function(Ha){return Ha.form===p.form});for(let Ha=0,Sa=Nb.length;Ha<Sa;++Ha)Nb[Ha].id!==p.id&&na&&(Nb[Ha].checked=!1,Nb[Ha].removeAttribute('checked'),Rb(Nb[Ha],!0));M?Rb(p):(na&&na!='null'&&na!='false'&&na!=''?setTimeout(function(){ea?Rb(p):(p.checked=!1,p.removeAttribute('checked'))},0):setTimeout(function(){ea?Rb(p):(p.checked=!0,p.setAttribute('checked','checked'))},0),Ca&&(p.value=/^true$/.test(p.value)?!0:!1))};Xa=0;for(Qa=Q.length;Xa<Qa;++Xa){I=Q[Xa].getAttribute('type');if(typeof Q[Xa].id==
513
- 'undefined'||Q[Xa].id=='')Q[Xa].id=I+'-'+E(),Q[Xa].setAttribute('id',Q[Xa].id);if(typeof I!='undefined'&&/^checkbox$/i.test(I)){if(Q[Xa].disabled&&Ma.indexOf(Q[Xa].id)>-1||!Q[Xa].checked&&Ma.indexOf(Q[Xa].id)>-1){I=new RegExp(Q[Xa].id.replace(/\-|_|@|#|\.|\[|\]/g,'\\$&'));for(var Za in za)I.test(za[Za].group)&&(za[Za].target.disabled=!0)}J='change.'+Q[Xa].id;I=function(p,M){addListener(gina,p,M,function(ea){Ob(ea.target);triggerEvent(gina,ea.target,'changed.'+ea.target.id)});Ob(p,!0)};typeof gina.events[J]!=
514
- 'undefined'&&gina.events[J]==Q[Xa].id&&removeListener(gina,Q[Xa],J);I(Q[Xa],J)}else typeof I!='undefined'&&/^radio$/i.test(I)&&(J=Q[Xa].id,I=function(p,M){addListener(gina,p,M,function(ea){eb(ea.target);triggerEvent(gina,ea.target,'changed.'+ea.target.id)});eb(p,!0)},typeof gina.events[J]!='undefined'&&gina.events[J]==Q[Xa].id&&removeListener(gina,Q[Xa],J),I(Q[Xa],J))}J='click';var Lb=function(p){var M=p.target;Mb(p);if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;p.preventDefault();
515
- var ea=M.id;if(!ea)return!1;/^reset\./.test(ea)||(ea='reset.'+M.id);gina.events[ea]&&triggerEvent(gina,M,ea,p.detail)},fb=function(p){var M=p.target;Mb(p);if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;Y[p.keyCode]=p.type=='keydown';var ea=M.id;if(!ea)return!1;/^keydown\./.test(ea)||(ea='keydown.'+M.id);gina.events[ea]&&(M=triggerEvent(gina,M,ea,p.detail,p))&&M.defaultPrevented&&cancelEvent(p)},Na=function(p){var M=p.target;Mb(p);if(typeof p.defaultPrevented!='undefined'&&
516
- p.defaultPrevented)return!1;Y[p.keyCode]&&delete Y[p.keyCode];var ea=M.id;if(!ea)return!1;/^keyup\./.test(ea)||(ea='keyup.'+M.id);gina.events[ea]&&(cancelEvent(p),triggerEvent(gina,M,ea,p.detail,p))},Fa=function(p){var M=p.target;Mb(p);if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;var ea=M.id;if(!ea)return!1;/^focusin\./.test(ea)||(ea='focusin.'+M.id);if(gina.events[ea]){cancelEvent(p);var na=p.target.form.getAttribute('id')||(p.currentTarget&&p.currentTarget.getAttribute?
517
- p.currentTarget.getAttribute('id'):null),Ca={id:M.id,name:M.name};n.$forms[na].lastFocused.length?n.$forms[na].lastFocused.splice(0,0,Ca):n.$forms[na].lastFocused[0]=Ca;n.$forms[na].lastFocused.splice(2);triggerEvent(gina,M,ea,p.detail)}},kb=function(p){var M=p.target;Mb(p);if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;var ea=M.id;if(!ea)return!1;/^focusout\./.test(ea)||(ea='focusout.'+M.id);gina.events[ea]&&(cancelEvent(p),triggerEvent(gina,M,ea,p.detail))},Eb=function(p){var M=
518
- p.target;Mb(p);if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;var ea=M.id;if(!ea)return!1;/^change\./.test(ea)||(ea='change.'+M.id);gina.events[ea]&&(cancelEvent(p),triggerEvent(gina,M,ea,p.detail))},Db=function(p){var M=p.target;Mb(p);if(M&&M.parentNode){var ea=!1,na=!1;if(/(label)/i.test(p.target.tagName)&&typeof p.target.control!='undefined'&&p.target.control!=null&&/(checkbox|radio)/i.test(p.target.control.type)||/(label)/i.test(p.target.parentNode.tagName)&&typeof p.target.parentNode.control!=
519
- 'undefined'&&p.target.parentNode.control!=null&&/(checkbox|radio)/i.test(p.target.parentNode.control.type))na=p.target.getAttribute('for')||p.target.parentNode.getAttribute('for')?!0:!1,M=p.target.control||p.target.parentNode.control;if(!M.disabled&&/(checkbox|radio)/i.test(M.type)&&!na){if(/checkbox/i.test(M.type))return Ob(M);if(/radio/i.test(M.type))return eb(M,!1,!0)}if(/(button|input)/i.test(M.tagName)&&/(submit|checkbox|radio)/i.test(M.type)||/a/i.test(M.tagName)&&M.attributes.getNamedItem('data-gina-form-submit')||
520
- /a/i.test(M.parentNode.tagName)&&M.parentNode.attributes.getNamedItem('data-gina-form-submit')){na=M.attributes.getNamedItem('data-gina-form-submit');var Ca=M.parentNode.attributes.getNamedItem('data-gina-form-submit');if(na||Ca)ea=!0,Ca=p.currentTarget&&p.currentTarget.getAttribute?p.currentTarget:M.form||null,(Ca=na?M.getAttribute('data-gina-form-submit-method')||(Ca?Ca.getAttribute('method'):null):M.parentNode.getAttribute('data-gina-form-submit-method')||(Ca?Ca.getAttribute('method'):null))&&
521
- (na&&M.form?M.form.setAttribute?M.form.setAttribute('method',Ca):p.currentTarget&&p.currentTarget.setAttribute&&p.currentTarget.setAttribute('method',Ca):M.parentNode.form&&(M.parentNode.form.setAttribute?M.parentNode.form.setAttribute('method',Ca):p.currentTarget&&p.currentTarget.setAttribute&&p.currentTarget.setAttribute('method',Ca)));typeof M.id!='undefined'&&M.getAttribute('id')||M.setAttribute('id','click.'+E());M.id=M.getAttribute('id');if(/^click\./.test(M.id)||z){na=M.id;if(!na)return!1;
522
- /^click\./.test(na)||(na=M.id);if(!M.disabled&&/(checkbox|radio)/i.test(M.type)){if(/checkbox/i.test(M.type))return Ob(M);if(/radio/i.test(M.type))return eb(M,!1,!0)}if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;if(M.type=='submit'&&!/^submit\./i.test(na)||ea&&!/^submit\./i.test(na))na='submit.'+na,n.$forms[c.id].submitTrigger=c.submitTrigger=M.id;M.type!='reset'||/^reset\./i.test(na)||(na='reset.'+na);if(/^submit\./i.test(na)&&uc(M)&&!vc(M,a,n.$forms[c.id]||c))return cancelEvent(p),
523
- Cc(n.$forms[c.id]||c),!1;/^submit\./i.test(na)&&w(n.$forms[c.id]||c,r.resolveTrigger(M,a));gina.events[na]?(M&&M.__ginaSubmitBoundFor!==na&&ub(na,M),cancelEvent(p),triggerEvent(gina,M,na,p.detail)):ea&&typeof this.id!='undefined'&&this.id!=''&&typeof gina.validator.$forms[this.id]!='undefined'&&(gina.validator.getFormById(this.id).submit(),cancelEvent(p))}}}},db=function(p){if(p&&p.animationName==='gina-autofill-start'){var M=p.target;if(M&&M.id&&M.form){var ea='change.'+M.id;typeof gina.events[ea]!=
524
- 'undefined'&&(oc(M)?Pc(n.$forms[M.form.getAttribute('id')]):triggerEvent(gina,M,ea,p.detail))}}};I=function(){var p=null;p='reset.'+a.id;typeof gina.events[p]=='undefined'&&addListener(gina,a,p,function(M){M.preventDefault();var ea=n.$forms[M.currentTarget.id||M.target.id];ea.target.dataset.ginaFormIsResetting=!0;Ua(ea);M=bc(ea.target,ea.rules,!0);Xb(ea.target,M.fields,M.$fields,ea.rules,function(na){var Ca=na.isValid();console.debug('silent reset validation result[isValid:'+Ca+']: ',na);ma(ea.target,
525
- {});Zb(ea.target,Ca);ea.target.dataset.ginaFormIsResetting=!1})});addListener(gina,a,'reset',Lb);addListener(gina,a,'keydown',fb);addListener(gina,a,'keyup',Na);addListener(gina,a,'focusin',Fa);addListener(gina,a,'focusout',kb);addListener(gina,a,'change',Eb);addListener(gina,a,'click',Db);addListener(gina,a,'animationstart',db)};I();for(let p=0,M=a.elements.length;p<M;p++)Za=a.elements[p],a.contains(Za)||(addListener(gina,Za,'keydown',fb),c.reassociatedListeners.push({el:Za,evt:'keydown',fn:fb}),
526
- addListener(gina,Za,'keyup',Na),c.reassociatedListeners.push({el:Za,evt:'keyup',fn:Na}),addListener(gina,Za,'focusin',Fa),c.reassociatedListeners.push({el:Za,evt:'focusin',fn:Fa}),addListener(gina,Za,'focusout',kb),c.reassociatedListeners.push({el:Za,evt:'focusout',fn:kb}),addListener(gina,Za,'change',Eb),c.reassociatedListeners.push({el:Za,evt:'change',fn:Eb}),addListener(gina,Za,'click',Db),c.reassociatedListeners.push({el:Za,evt:'click',fn:Db}),addListener(gina,Za,'animationstart',db),c.reassociatedListeners.push({el:Za,
527
- evt:'animationstart',fn:db}));J='validate.'+h;I=function(){addListener(gina,a,J,function(p){cancelEvent(p);var M=c.eventData.error||c.eventData.validation||p.detail;ma(p.target,M.fields||M.error,M.data);var ea=p.target.getAttribute('id');if(typeof M.isValid!='undefined'&&M.isValid()){var na=n.$forms[ea].target.getAttribute('data-gina-form-inherits-data')||null;na&&(M.data=A(M.data,JSON.parse(decodeURIComponent(na))));n.$forms[ea]?n.$forms[ea].send(M.data):c&&c.send(M.data)}else if(n.$forms[ea]&&(n.$forms[ea].isSubmitting=
528
- !1),ea=n.$forms[ea]||c,/^true$/i.test(ea.isSending)||G(ea),M=M.fields||M.error){p=p.target;ob=!0;try{for(ea=0,na=p.length;ea<na;++ea){var Ca=p[ea],Pa=Ca.getAttribute('name');if(Pa&&typeof M[Pa]!='undefined'&&(typeof M[Pa].count!='function'||M[Pa].count()>0)&&Ca.type!='hidden'&&typeof Ca.focus=='function'&&(Ca.focus(),typeof document==='undefined'||!document||document.activeElement===Ca)){Kb={formId:p.getAttribute('id'),elName:Pa};break}}}finally{ob=!1}}})};typeof gina.events[J]!='undefined'&&gina.events[J]==
529
- 'validate.'+h&&removeListener(gina,c,J,I);I();var ub=function(p,M){/^submit\./i.test(p)||(p='submit.'+p);M.__ginaSubmitBoundFor=p;addListener(gina,M,p,function(ea){cancelEvent(ea);ea=a.getAttribute('id');if(typeof n.$forms[ea]=='undefined'||!/^true$/i.test(n.$forms[ea].isSubmitting)){var na={};ea={_length:0};var Ca=a.getAttribute('id'),Pa=typeof n.$forms[Ca]!='undefined'?n.$forms[Ca].rules:null;sa(a,function(){triggerEvent(gina,M,p)})||(na=bc(a,Pa),ea=na.fields,na=na.$fields,Pa=n.$forms[Ca].rules,
530
- ea._length==0?(delete ea._length,ea={error:[],isValid:function(){return!0},data:Sb(ea)},triggerEvent(gina,a,'validate.'+h,ea)):(h=a.getAttribute('id'),e=(Pa=a.getAttribute('data-gina-form-rule'))?wb(Pa.replace(/\-|\//g,'.')):wb(h.replace(/\-/g,'.')),n.$forms[Ca].isSubmitting=!0,n.$forms[Ca].isSending=!1,Xb(a,ea,na,e,function(Ha){triggerEvent(gina,a,'validate.'+h,Ha)})))}})};Q=null;Za=[];Q=[];Ma=null;Q=b(a,'button');if(Q.length>0)for(let p=0,M=Q.length;p<M;++p)Q[p].type=='submit'&&Za.push(Q[p]);Q=
531
- a.getElementsByTagName('a');if(Q.length>0)for(let p=0,M=Q.length;p<M;++p)Q[p].attributes.getNamedItem('data-gina-form-submit')?Za.push(Q[p]):Q[p].getAttribute('id')||/gina\-popin/.test(Q[p].className)||gina.popinIsBinded||/gina\-link/.test(Q[p].className)||(Ma='link.'+E(),Q[p].id=Ma);b=null;Ma=!1;for(let p=0,M=Za.length;p<M;++p){Q=Za[p];if(/button/i.test(Q.tagName)&&typeof Q.type!='undefined'&&/submit/i.test(Q.type)||/a/i.test(Q.tagName)&&typeof Q.dataset.ginaFormSubmit!='undefined'&&/^true$/i.test(Q.dataset.ginaFormSubmit)||
532
- /a/i.test(Q.parentNode.tagName)&&typeof Q.parentNode.dataset.ginaFormSubmit!='undefined'&&/^true$/i.test(Q.parentNode.dataset.ginaFormSubmit)){/a/i.test(Q.parentNode.tagName)&&(Q=Q.parentNode);if(typeof Q.id=='undefined'||typeof Q.id!='undefined'&&Q.id=='')Q.id='click.'+E(),Q.setAttribute('id',Q.id);/a/i.test(Q.tagName)&&typeof Q.form=='undefined'&&(Q.form={id:c.id});typeof Q.dataset.ginaFormSubmitTriggerFor=='undefined'&&typeof n.$forms[c.id]!='undefined'&&typeof n.$forms[c.id].submitTrigger=='undefined'&&
533
- typeof Q.form.id!='undefined'&&c.id==Q.form.id&&(n.$forms[c.id].submitTrigger=c.submitTrigger=Q.id||Q.getAttribute('id'),Q.dataset.ginaFormSubmitTriggerFor=c.id)}Q.tagName=='A'&&(b=Q.getAttribute('onclick'),Ma=Q.getAttribute('data-gina-form-submit'),b||Ma||addListener(gina,Q,'click',function(ea){ea.preventDefault()}));Q.id?J=Q.id:(J='click.'+E(),Q.id=J,Q.setAttribute('id',J));b=/^submit\./i.test(J)?J:'submit.'+J;typeof gina.events[b]!='undefined'&&gina.events[b]==Q.id||ub(J,Q)}J='submit';addListener(gina,
534
- a,J,function(p){var M=p.target,ea=M.getAttribute('id'),na=n.$forms[ea],Ca=c.binded;if(na&&p.isTrusted){var Pa=document.getElementById(na.submitTrigger)||null;if(uc(Pa)&&!vc(Pa,M,na))return cancelEvent(p),Cc(na),!1}if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;na&&(Pa=document.getElementById(na.submitTrigger),uc(Pa)&&!vc(Pa,M,na)||w(na,Pa));(z||Ca)&&cancelEvent(p);if((z||Ca)&&sa(M,function(){triggerEvent(gina,M,'submit')}))return!1;p={};na={_length:0};Ca=typeof gina.validator.$forms[ea]!=
535
- 'undefined'?gina.validator.$forms[ea].rules:null;for(var Ha=Pa=null,Sa=0,mb=M.length;Sa<mb;++Sa)Pa=M[Sa].getAttribute('name'),Ha=M[Sa].disabled||M[Sa].getAttribute('disabled'),Ha=/disabled|true/i.test(Ha)?!0:!1,Pa&&!Ha&&(typeof M[Sa].type!='undefined'&&M[Sa].type=='checkbox'&&Ac(M[Sa],Ca?Ca[Pa]:null)?na[Pa]=M[Sa].checked:typeof M[Sa].type!='undefined'&&M[Sa].type=='radio'||typeof M[Sa].type!='undefined'&&M[Sa].type=='checkbox'?M[Sa].checked?/^(true|false)$/.test(M[Sa].value)?na[Pa]=M[Sa].value=/^true$/.test(M[Sa].value)?
536
- !0:!1:na[Pa]=M[Sa].value:Ca&&typeof Ca[Pa]!='undefined'&&typeof Ca[Pa].isBoolean!='undefined'&&M[Sa].type=='checkbox'&&!/^(true|false)$/.test(M[Sa].value)?na[Pa]=!1:M[Sa].type=='radio'&&Ca&&typeof Ca[Pa]!='undefined'&&/^true$/i.test(Ca[Pa].isRequired)&&typeof Ca[Pa].isBoolean=='undefined'&&typeof na[Pa]=='undefined'&&(na[Pa]=''):M[Sa].type=='file'&&M[Sa].getAttribute('data-gina-form-upload-action')||(na[Pa]=M[Sa].value),p[Pa]=M[Sa],p[Pa].setAttribute('data-gina-form-errors',''));na._length=na.count();
537
- if(na._length==0)delete na._length,p={error:[],isValid:function(){return!0},data:Sb(na)},typeof gina.events['submit.'+ea]!='undefined'?triggerEvent(gina,M,'submit.'+ea,p):triggerEvent(gina,M,'validate.'+ea,p);else{e=(Ca=M.getAttribute('data-gina-form-rule'))?wb(Ca.replace(/\-|\//g,'.')):wb(ea.replace(/\-/g,'.'));Ca=(Ca=M.id||(typeof M.getAttribute=='function'?M.getAttribute('id'):null))&&typeof CSS!='undefined'&&typeof CSS.escape=='function'?CSS.escape(Ca):Ca;if(typeof M.querySelector=='function'&&
538
- M.querySelector('[data-gina-form-validator-query-pending]')||Ca&&document.querySelector('[form="'+Ca+'"][data-gina-form-validator-query-pending]')){if(/^true$/i.test(n.$forms[ea].isSubmitting))return!1;n.$forms[ea].isSubmitting=!0;n.$forms[ea].isSending=!1}n.$forms[ea].isValidating=!0;Xb(M,na,p,e,function(Hb){n.$forms[ea].isValidating=!1;typeof gina.events['submit.'+ea]!='undefined'?(n.$forms[ea].isSubmitting=!1,triggerEvent(gina,M,'submit.'+ea,Hb)):triggerEvent(gina,M,'validate.'+ea,Hb)})}});n.$forms[h].binded=
481
+ {};typeof c.target.dataset.ginaFormLiveCheckEnabled=='undefined'&&c.rules.count()>0?c.target.dataset.ginaFormLiveCheckEnabled=!0:c.target.dataset.ginaFormLiveCheckEnabled=typeof c.target.dataset.ginaFormLiveCheckEnabled!='undefined'?/^true$/i.test(c.target.dataset.ginaFormLiveCheckEnabled)?!0:!1:!1;c.fieldsSet||(c.fieldsSet={});Array.isArray(c.reassociatedListeners)||(c.reassociatedListeners=[]);b=function(p,N){var ea=[],sa=N.toUpperCase();for(let Aa=0,Pa=p.elements.length;Aa<Pa;Aa++){let Na=p.elements[Aa];
482
+ Na.tagName===sa&&ea.push(Na)}N=p.getElementsByTagName(N);for(let Aa=0,Pa=N.length;Aa<Pa;Aa++)sa=N[Aa],sa.form===p&&ea.indexOf(sa)===-1&&ea.push(sa);return ea};I=null;a.getElementsByTagName('a');var R=b(a,'input'),oa=b(a,'textarea');I=b(a,'select');var Ca=function(p){var N=[];for(let ea=0,sa=p.elements.length;ea<sa;ea++){let Aa=p.elements[ea];Aa.tagName.indexOf('-')>-1&&N.push(Aa)}return N}(a),za={},Ma=[],Ra={},Sa=null,jb={},Wa=null,Ja=null;for(let p=0,N=oa.length;p<N;++p)fc(c.rules,oa[p]),Ja=oa[p].getAttribute('id'),
483
+ Ja&&Ja!=''||(Ja='textareas.'+E(),oa[p].setAttribute('id',Ja)),c.fieldsSet[Ja]||(c.fieldsSet[Ja]={id:Ja,name:oa[p].name||null,value:oa[p].value||'',defaultValue:oa[p].value||''}),/^true$/i.test(c.target.dataset.ginaFormLiveCheckEnabled)&&qc(c,oa[p]);for(let p=0,N=Ca.length;p<N;++p){if(typeof Ca[p].form=='undefined'||Ca[p].form==null)try{Object.defineProperty(Ca[p],'form',{value:c.target,configurable:!0,writable:!0})}catch(ea){}if((typeof Ca[p].name=='undefined'||!Ca[p].name)&&Ca[p].getAttribute('name'))try{Object.defineProperty(Ca[p],
484
+ 'name',{value:Ca[p].getAttribute('name'),configurable:!0,writable:!0})}catch(ea){}fc(c.rules,Ca[p]);Ja=Ca[p].getAttribute('id');Ja&&Ja!=''||(Ja='face.'+E(),Ca[p].setAttribute('id',Ja));c.fieldsSet[Ja]||(Sa=Ca[p].value||'',c.fieldsSet[Ja]={id:Ja,name:Ca[p].getAttribute('name')||null,value:Ca[p].value||'',defaultValue:Sa});/^true$/i.test(c.target.dataset.ginaFormLiveCheckEnabled)&&qc(c,Ca[p])}for(let p=0,N=R.length;p<N;++p){fc(c.rules,R[p]);Ja=R[p].getAttribute('id');Ja&&Ja!=''||(Ja='input.'+E(),R[p].setAttribute('id',
485
+ Ja));c.fieldsSet[Ja]||(Sa=R[p].value,c.fieldsSet[Ja]={id:Ja,name:R[p].name||null,value:Sa||!/^(checkbox|radio)$/i.test(R[p].type)?'':R[p].checked,defaultValue:/^(checkbox|radio)$/i.test(R[p].type)?R[p].checked:Sa},/^(checkbox|radio)$/i.test(R[p].type)&&typeof c.fieldsSet[Ja].defaultChecked=='undefined'&&(c.fieldsSet[Ja].defaultChecked=R[p].defaultChecked||kc(c)&&/^(true|on)$/.test(Sa)&&/^(checkbox)$/i.test(R[p].type)?!0:!1,/^radio$/i.test(R[p].type)&&(c.fieldsSet[Ja].value=R[p].value,c.fieldsSet[Ja].defaultValue=
486
+ R[p].value),!/^(checkbox)$/i.test(R[p].type)||kc(c)||typeof c.target.dataset.ginaFormCheckboxValueAsState!='undefined'||R[p].hasAttribute('checked')||!/^(true|on)$/i.test(R[p].getAttribute('value'))||lc[Ja]||(lc[Ja]=!0,console.warn('[ FormValidator ] checkbox `'+Ja+'`: `value` no longer implies the checked state; add the `checked` attribute if it must render ticked, or set `data-gina-form-checkbox-value-as-state="true"` on the form to restore the legacy behavior. If the unticked rendering is intended, remove the `value` attribute (a boolean checkbox posts its live checked state either way), or set `data-gina-form-checkbox-value-as-state="false"` on the form to declare the current model and silence migration warnings')),
487
+ Sa=R[p].getAttribute('data-value')||R[p].getAttribute('value')||R[p].value,!/^(checkbox)$/i.test(R[p].type)||kc(c)||typeof c.target.dataset.ginaFormCheckboxValueAsState!='undefined'||!R[p].hasAttribute('checked')||Sa!==''&&!/^false$/i.test(Sa)||lc[Ja]||(lc[Ja]=!0,console.warn('[ FormValidator ] checkbox `'+Ja+'`: `value` no longer un-ticks a checked box; remove the `checked` attribute if it must render unticked, or set `data-gina-form-checkbox-value-as-state="true"` on the form to restore the legacy behavior. If the ticked rendering is intended, set `data-gina-form-checkbox-value-as-state="false"` on the form to declare the current model and silence migration warnings'))));
488
+ /^true$/i.test(c.target.dataset.ginaFormLiveCheckEnabled)&&qc(c,R[p]);if(Sa=R[p].getAttribute('data-gina-form-element-group'))Ma.indexOf(Sa)<0&&Ma.push(Sa),Ca=R[p].getAttribute('name')||Ja,Ca===Ja&&R[p].setAttribute('name',Ja),za[Ja]={id:Ja,name:Ca,group:Sa,target:R[p]},Ra[R[p].name]=new RegExp('^'+Sa.replace(/[.*+?^${}()|[\]\\]/g,'\\$&')),z&&(typeof c.rules[R[p].name]=='undefined'&&(c.rules[R[p].name]={}),typeof c.rules[R[p].name].isRequired!='undefined'&&c.rules[R[p].name].isRequired||(c.rules[R[p].name].exclude=
489
+ !0));if(Ra.count()>0)for(var Xa in Ra)R[p].name!=Xa&&(R[p].getAttribute('data-gina-form-element-group'),Ra[Xa].test(R[p].name)&&(R[p].disabled=!0,typeof jb[Xa]=='undefined'&&(jb[Xa]={}),jb[Xa][R[p].name]=R[p]));if(/^file$/i.test(R[p].type)){Ja=R[p].getAttribute('data-gina-form-upload-trigger');Ja||(Ja=R[p].id);Sa=null;Wa=(new DOMParser).parseFromString(a.innerHTML,'text/html');Ja&&(Sa=document.getElementById(Ja));Ca=document.getElementById(R[p].id+'-error');Ic(R[p],Ca);if((Wa=Wa.getElementById(Ja+
490
+ '-preview'))&&Sa&&!/none/i.test(window.getComputedStyle(Wa).display)&&!/none/i.test(Wa.parentElement.style.display)){Ca=0;console.debug('preview is visible ...');Sa.customFiles=[];Sa.form=a;Wa=Wa.childNodes;for(let ea=0,sa=Wa.length;ea<sa;ea++)if(oa=null,/ul/i.test(Wa[ea].tagName))for(let Aa=0,Pa=Wa[ea].length;Aa<Pa;Aa++){let Na=$$els[ea];for(let La=0,nb=Na.length;La<nb;La++)/img/i.test(Na[La])&&(oa=Na[La],oa.setAttribute(''),Ca++)}else/img/i.test(Wa[ea].tagName)&&(oa=Wa[ea],deleteLinkId=Ja+'-'+Ca+
491
+ '-delete-trigger',oa=oa.src.substring(oa.src.lastIndexOf('/')+1),Sa.customFiles.push({name:oa,deleteLinkId}),mc('delete',Sa,Ca),Ca++)}va(R[p]);addListener(gina,R[p],'change',function(ea){ea.preventDefault();var sa=ea.currentTarget;ea=sa.files;sa.customFiles=Array.from(ea);if(!ea.length)return!1;var Aa=sa.getAttribute('data-gina-form-upload-action'),Pa=sa.getAttribute('name'),Na='gina-upload-'+Pa.replace(/\[/g,'-').replace(/\]/g,'-'+c.id)+(/\]/.test(Pa)?'':'-'+c.id);sa.setAttribute('data-gina-form-virtual',
492
+ Na);var La=sa.getAttribute('data-gina-form-upload-on-success'),nb=sa.getAttribute('data-gina-form-upload-on-error'),Gb=sa.getAttribute('data-gina-form-upload-on-progress'),Kb=sa.getAttribute('data-gina-form-upload-error')||(sa.id?sa.id+'-error':null),pb=typeof gina.popin!='undefined'&&gina.popin&&typeof gina.popin.getPopinContaining=='function'?gina.popin.getPopinContaining(sa.form||sa):null;var ob=sa.form,Ub;if(m&&!pb&&typeof gina.popin!='undefined'&&gina.popin&&(Ub=typeof gina.popin.getActivePopin==
493
+ 'function'?gina.popin.getActivePopin():null)&&Ub.isOpen)try{console.warn('[FormValidator][popin] the staged upload of `#'+(sa&&sa.id?sa.id:'')+'` (form `#'+(ob&&ob.id?ob.id:'')+'`) is placed with its own form: the form is not inside popin `'+Ub.name+'`, which is open (the former rule would have placed the upload inside it and its metadata would never have reached the form).')}catch(rc){}if(ea.length>0){pb?(pb.$target=(new DOMParser).parseFromString(pb.target.outerHTML,'text/html'),pb.$target.getElementById(pb.id).innerHTML=
494
+ document.getElementById(pb.id).innerHTML,ob=pb.$target.getElementById(Na)):ob=document.getElementById(Na);if(!ob){if((Ub=n.$forms[Na]||null)&&Ub.target&&Ub.target.isConnected)ob=Ub.target;else if(Ub){try{Ub.destroy()}catch(rc){}delete n.$forms[Na]}ob||=pb?pb.$target.createElement('form'):document.createElement('form');ob.id=Na;ob.action=Aa;ob.enctype='multipart/form-data';ob.method='POST';if(typeof sa.form!='undefined'){Aa='files';var Hb=sa.getAttribute('data-gina-form-upload-prefix')||sa.name||sa.getAttribute('name'),
495
+ $b=sa.id||sa.getAttribute('id');Ub=!1;var Jc=sa.getAttribute('data-gina-form-upload-progress')||($b?$b+'-progress':null),Kc=sa.getAttribute('data-gina-form-upload-dropzone')||null;$b=sa.getAttribute('data-gina-form-upload-preview')||$b+'-preview';$b=pb?pb.$target.getElementById($b):document.getElementById($b);typeof $b!='undefined'&&$b&&(Ub=!0);Hb&&(Aa=Hb);Hb=[];for(var cc='name group originalFilename ext encoding size height width location mime preview'.split(' '),sc=sa.form.getElementsByTagName('INPUT'),
496
+ Vb,Pb,tc,ac,Eb=0,Lc=ea.length;Eb<Lc;++Eb){mc('reset',sa,Eb);Hb[Eb]=null;Vb=Aa+'['+Eb+']';ac=new RegExp('^'+Vb.replace(/\[/g,'\\[').replace(/\]/g,'\\]'));for(var dc=0,Mc=sc.length;dc<Mc;++dc)(Vb=sc[dc].getAttribute('type'))&&/hidden/i.test(Vb)&&(Pb=sc[dc],Vb=/\[\w+\]$/i.test(Pb.name)?Pb.name.match(/\[\w+\]$/)[0].replace(/\[|\]/g,''):Pb.name,tc=/\[\w+\]$/i.test(Pb.name)?Pb.name.match(/\[\w+\]$/)[0].replace(/\[|\]/g,''):Pb.name,Pb&&typeof Vb!='undefiend'&&cc.indexOf(Vb)>-1&&ac.test(Pb.name)?(Hb[Eb]||
497
+ (Hb[Eb]={}),/\[preview\]/i.test(Pb.name)?(typeof Hb[Eb].preview=='undefined'&&(Hb[Eb].preview={}),Hb[Eb].preview[Vb]=Pb):Hb[Eb][Vb]=Pb):Pb&&typeof Vb!='undefiend'&&cc.indexOf(Vb)<0&&ac.test(Pb.name)&&(Hb[Eb]||(Hb[Eb]={}),/\[preview\]/i.test(Pb.name)?(typeof Hb[Eb].preview=='undefined'&&(Hb[Eb].preview={}),Hb[Eb].preview[tc]=Pb):Hb[Eb][tc]=Pb));ac=0;for(dc=cc.length;ac<dc;++ac)Hb[Eb]||(Hb[Eb]={}),typeof Hb[Eb][cc[ac]]=='undefined'&&(cc[ac]=='preview'?Hb[Eb].preview={}:(Vb=Aa+'['+Eb+']['+cc[ac]+']',
498
+ $newVirtualField=document.createElement('input'),$newVirtualField.type='hidden',$newVirtualField.id='input.'+E(),$newVirtualField.name=Vb,$newVirtualField.value='',sa.form.appendChild($newVirtualField),Hb[Eb][cc[ac]]=sa.form[sa.form.length-1]))}ob.uploadProperties={id:sa.form.id||sa.getAttribute('id'),uploadTriggerId:sa.id,$form:sa.form,errorField:Kb,progressContainer:Jc,dropzoneContainer:Kc,mandatoryFields:cc,uploadFields:Hb,hasPreviewContainer:Ub,isPopinContext:!!pb};Ub&&(ob.uploadProperties.previewContainer=
499
+ $b)}La?ob.setAttribute('data-gina-form-event-on-submit-success',La):ob.setAttribute('data-gina-form-event-on-submit-success','onGenericXhrResponse');nb?ob.setAttribute('data-gina-form-event-on-submit-error',nb):ob.setAttribute('data-gina-form-event-on-submit-error','onGenericXhrResponse');Gb&&ob.setAttribute('data-gina-form-event-on-upload-progress',Gb);ob.setAttribute('data-gina-form-sync','replace');pb?document.getElementById(pb.id).appendChild(ob):document.body.appendChild(ob)}ob.uploadProperties&&
500
+ ob.uploadProperties.progressContainer&&B(ob.uploadProperties.progressContainer,'preparing');ob.uploadProperties&&ob.uploadProperties.uploadTriggerId&&(sa=document.getElementById(ob.uploadProperties.uploadTriggerId))&&sa.form&&ia(sa.form,da('uploadStarted'));try{var Nc=Q(Na),Bc=new FormData;Na=null;sa=0;for(var Oc=ea.length;sa<Oc;++sa)Na=ea[sa],Bc.append(Pa,Na,Na.name);Nc.send(Bc,{withCredentials:!0})}catch(rc){throw rc;}}})}}var yb=function(p,N){p.setAttribute('data-value',p.value);if(/^(true)$/i.test(N.target.dataset.ginaFormLiveCheckEnabled)&&
501
+ N.rules.count()>0){var ea={},sa={},Aa=null;Aa=p.form;ea[event.target.name]=event.target.value;sa[event.target.name]=event.target;n.$forms[Aa.getAttribute('id')].isValidating=!0;Xb(event.target,ea,sa,N.rules,function(Pa){n.$forms[Aa.getAttribute('id')].isValidating=!1;Pa.isValid()?ma(Aa,{},Pa.data,event.target.name):ma(Aa,Pa.error,Pa.data,event.target.name);var Na=Aa,La=Pa=null,nb=null;La=hc(bc(Na,u));Pa=La.fields;La=La.$fields;var Gb=Na.getAttribute('id');nb=n.$forms[Gb].rules;n.$forms[Gb].isValidating=
502
+ !0;Xb(Na,Pa,La,nb,function(Kb){n.$forms[Gb].isValidating=!1;console.debug('[updateSelect]: onSilentGlobalLiveValidation: '+Kb.isValid(),Kb);var pb=Kb.isValid();if(!pb){n.$forms[Gb].errors=Kb.error;var ob=event.target.name;typeof Kb.error[ob]!='undefined'&&ma(Na,Kb.error,Kb.data,ob)}else if(pb&&n.$forms[Gb].errors&&n.$forms[Gb].errors.count()>0)for(ob in Kb=n.$forms[Gb].errors,n.$forms[Gb].errors={},Kb)ma(Na,{},null,ob);Zb(Na,pb);once=!1})})}};Sa=jb=null;Xa=0;for(Ra=I.length;Xa<Ra;++Xa)if(fc(c.rules,
503
+ I[Xa]),Ja=I[Xa].getAttribute('id'),!Ja||!/^gina\-toolbar/.test(Ja)){Ja&&Ja!=''||(Ja='select.'+E(),I[Xa].setAttribute('id',Ja));if(Sa=I[Xa].getAttribute('data-gina-form-element-group'))jb=I[Xa].getAttribute('name')||Ja,jb===Ja&&I[Xa].setAttribute('name',Ja),za[Ja]={id:Ja,name:jb,group:Sa,target:I[Xa]};addListener(gina,I[Xa],'change',function(p){p=p.target;/select/i.test(p.type)&&yb(p,c)});if(I[Xa].options&&!c.fieldsSet[Ja]){jb=0;if(Sa=I[Xa].getAttribute('data-value')||null)for(Ca=0,Wa=I[Xa].options.length;Ca<
504
+ Wa;++Ca)if(I[Xa].options[Ca].value==Sa){jb=Ca;I[Xa].selectedIndex=jb;break}typeof I[Xa].options[I[Xa].selectedIndex]!='undefined'&&I[Xa].options[I[Xa].selectedIndex].index&&(jb=I[Xa].options[I[Xa].selectedIndex].index);I[Xa].options.length>0&&typeof I[Xa].options[jb]!='undefined'&&(Sa=I[Xa].options[jb].value);c.fieldsSet[Ja]={id:Ja,name:I[Xa].name||null,value:Sa||null,selectedIndex:jb||0};typeof I[Xa].selectedIndex!='undefined'&&I[Xa].selectedIndex>-1&&(I[Xa].options[jb].selected=!0,I[Xa].setAttribute('data-value',
505
+ I[Xa].options[jb].value))}}var hb=function(p,N,ea,sa){typeof sa=='undefined'&&(sa=!1);if(typeof za[p]=='undefined')throw Error('Radio & Checkbox dependencies not met: you must use the ID attribue of the `master element` as the `data-gina-form-element-group`');var Aa=p.replace(/\-|_|@|#|\.|\[|\]/g,'\\$&');p=za[p].target.checked;for(let La in za)if(!/radio|checkbox/i.test(za[La].target.type)){var Pa=new RegExp(Aa);var Na=new RegExp(N);if(Pa.test(za[La].group)&&Na.test(za[La].group)||Pa.test(za[La].group))za[La].target.disabled=
506
+ !0,typeof c.rules[za[La].name]=='undefined'&&(c.rules[za[La].name]={}),c.rules[za[La].name].exclude=!0,sa?(za[La].target.disabled=p?!1:!0,c.rules[za[La].name].exclude=p?!1:!0):(za[La].target.disabled=ea,c.rules[za[La].name].exclude=ea)}},ab=function(p,N,ea,sa){typeof sa=='undefined'&&(sa=!1);if(sa&&typeof za[N.id]!='undefined')return p=/true/i.test(N.checked)?!1:!0,hb(N.id,za[N.id].group,p,sa);ea=N.name;z&&typeof p.rules[ea]=='undefined'&&(p.rules[ea]={});/^true$/i.test(N.checked)?z&&(p.rules[ea].exclude=
507
+ !1,typeof za[N.id]!='undefined'&&hb(N.id,za[N.id].group,!1,sa)):z&&(p.rules[ea].exclude=!0,typeof za[N.id]!='undefined'&&hb(N.id,za[N.id].group,!0,sa))},Ob=function(p,N){typeof N=='undefined'&&(N=!1);var ea=function(La,nb,Gb){if(nb)ab(c,La,nb);else for(let Kb in za)if(Na.test(za[Kb].group)||Na.test(za[Kb].target.getAttribute('data-gina-form-element-group')))za[Kb].target.disabled=Gb};N&&/^(on)$/i.test(p.value)&&!p.checked&&(p.value=!1);var sa=p.getAttribute('data-value')||p.getAttribute('value')||
508
+ p.value;sa=/^(true|on)$/.test(sa)?!0:sa;sa===''&&(sa=!1);var Aa=/^(true|on|false)$/i.test(sa)?!0:!1;N&&Aa&&kc(c)&&(/^true$/i.test(sa)&&!p.checked?p.checked=!0:/^false$/i.test(sa)&&p.checked&&(p.checked=!1));sa=p.checked;var Pa=p.getAttribute('data-gina-form-element-group')||null,Na=new RegExp(p.id.replace(/\-|_|@|#|\.|\[|\]/g,'\\$&'));sa&&sa!='null'&&sa!='false'&&sa!=''?(N?Qb(p):(setTimeout(function(){p.checked=!0;ea(p,Pa,!1);Qb(p)},0),p.setAttribute('checked','checked')),Aa&&(p.value=!0,p.setAttribute('value',
509
+ !0),typeof(p.getAttribute('data-value')!='undefined')&&p.setAttribute('data-value',!0))):(N?Qb(p):setTimeout(function(){p.checked=!1;ea(p,Pa,!0);Qb(p)},0),p.removeAttribute('checked'),Aa&&(p.value=!1,p.setAttribute('value','false'),typeof(p.getAttribute('data-value')!='undefined')&&p.setAttribute('data-value','false')))},Qb=function(p){p=new RegExp(p.id.replace(/\-|_|@|#|\.|\[|\]/g,'\\$&'));for(let N in za)(/checkbox/i.test(za[N].target.type)&&p.test(za[N].group)||/checkbox/i.test(za[N].target.type)&&
510
+ p.test(za[N].target.getAttribute('data-gina-form-element-group')))&&ab(c,za[N].target,za[N].group,!0)},Rb=function(p,N){N=p.id.replace(/\-|_|@|#|\.|\[|\]/g,'\\$&');N=new RegExp(N);for(let ea in za)if(/checkbox|radio/i.test(za[ea].target.type)||(za[ea].target.disabled=!0,typeof c.rules[za[ea].name]=='undefined'&&(c.rules[za[ea].name]={}),c.rules[za[ea].name].exclude=!0),N.test(za[ea].group)||N.test(za[ea].target.getAttribute('data-gina-form-element-group').replace(/\-|_|@|#|\.|\[|\]/g,'\\$&')))za[ea].target.disabled=
511
+ !0,typeof c.rules[za[ea].name]=='undefined'&&(c.rules[za[ea].name]={}),/^(true|on)$/i.test(p.checked)?(za[ea].target.disabled=!1,c.rules[za[ea].name].exclude=!1):(za[ea].target.disabled=!0,c.rules[za[ea].name].exclude=!0);Qb(p)},Nb=null,eb=function(p,N,ea){N=typeof N!='undefined'&&N?!0:!1;ea=typeof ea!='undefined'&&ea?!0:!1;N&&!p.checked&&p.hasAttribute('checked')&&(p.checked=!0);var sa=p.checked,Aa=/^(true|false)$/i.test(p.value),Pa=document.getElementsByName(p.name);Nb=Array.prototype.filter.call(Pa,
512
+ function(Na){return Na.form===p.form});for(let Na=0,La=Nb.length;Na<La;++Na)Nb[Na].id!==p.id&&sa&&(Nb[Na].checked=!1,Nb[Na].removeAttribute('checked'),Rb(Nb[Na],!0));N?Rb(p):(sa&&sa!='null'&&sa!='false'&&sa!=''?setTimeout(function(){ea?Rb(p):(p.checked=!1,p.removeAttribute('checked'))},0):setTimeout(function(){ea?Rb(p):(p.checked=!0,p.setAttribute('checked','checked'))},0),Aa&&(p.value=/^true$/.test(p.value)?!0:!1))};Xa=0;for(Ra=R.length;Xa<Ra;++Xa){I=R[Xa].getAttribute('type');if(typeof R[Xa].id==
513
+ 'undefined'||R[Xa].id=='')R[Xa].id=I+'-'+E(),R[Xa].setAttribute('id',R[Xa].id);if(typeof I!='undefined'&&/^checkbox$/i.test(I)){if(R[Xa].disabled&&Ma.indexOf(R[Xa].id)>-1||!R[Xa].checked&&Ma.indexOf(R[Xa].id)>-1){I=new RegExp(R[Xa].id.replace(/\-|_|@|#|\.|\[|\]/g,'\\$&'));for(var db in za)I.test(za[db].group)&&(za[db].target.disabled=!0)}J='change.'+R[Xa].id;I=function(p,N){addListener(gina,p,N,function(ea){Ob(ea.target);triggerEvent(gina,ea.target,'changed.'+ea.target.id)});Ob(p,!0)};typeof gina.events[J]!=
514
+ 'undefined'&&gina.events[J]==R[Xa].id&&removeListener(gina,R[Xa],J);I(R[Xa],J)}else typeof I!='undefined'&&/^radio$/i.test(I)&&(J=R[Xa].id,I=function(p,N){addListener(gina,p,N,function(ea){eb(ea.target);triggerEvent(gina,ea.target,'changed.'+ea.target.id)});eb(p,!0)},typeof gina.events[J]!='undefined'&&gina.events[J]==R[Xa].id&&removeListener(gina,R[Xa],J),I(R[Xa],J))}J='click';var Lb=function(p){var N=p.target;Mb(p);if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;p.preventDefault();
515
+ var ea=N.id;if(!ea)return!1;/^reset\./.test(ea)||(ea='reset.'+N.id);gina.events[ea]&&triggerEvent(gina,N,ea,p.detail)},fb=function(p){var N=p.target;Mb(p);if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;Y[p.keyCode]=p.type=='keydown';var ea=N.id;if(!ea)return!1;/^keydown\./.test(ea)||(ea='keydown.'+N.id);gina.events[ea]&&(N=triggerEvent(gina,N,ea,p.detail,p))&&N.defaultPrevented&&cancelEvent(p)},kb=function(p){var N=p.target;Mb(p);if(typeof p.defaultPrevented!='undefined'&&
516
+ p.defaultPrevented)return!1;Y[p.keyCode]&&delete Y[p.keyCode];var ea=N.id;if(!ea)return!1;/^keyup\./.test(ea)||(ea='keyup.'+N.id);gina.events[ea]&&(cancelEvent(p),triggerEvent(gina,N,ea,p.detail,p))},Fa=function(p){var N=p.target;Mb(p);if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;var ea=N.id;if(!ea)return!1;/^focusin\./.test(ea)||(ea='focusin.'+N.id);if(gina.events[ea]){cancelEvent(p);var sa=p.target.form.getAttribute('id')||(p.currentTarget&&p.currentTarget.getAttribute?
517
+ p.currentTarget.getAttribute('id'):null),Aa={id:N.id,name:N.name};n.$forms[sa].lastFocused.length?n.$forms[sa].lastFocused.splice(0,0,Aa):n.$forms[sa].lastFocused[0]=Aa;n.$forms[sa].lastFocused.splice(2);triggerEvent(gina,N,ea,p.detail)}},Qa=function(p){var N=p.target;Mb(p);if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;var ea=N.id;if(!ea)return!1;/^focusout\./.test(ea)||(ea='focusout.'+N.id);gina.events[ea]&&(cancelEvent(p),triggerEvent(gina,N,ea,p.detail))},Db=function(p){var N=
518
+ p.target;Mb(p);if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;var ea=N.id;if(!ea)return!1;/^change\./.test(ea)||(ea='change.'+N.id);gina.events[ea]&&(cancelEvent(p),triggerEvent(gina,N,ea,p.detail))},xb=function(p){var N=p.target;Mb(p);if(N&&N.parentNode){var ea=!1,sa=!1;if(/(label)/i.test(p.target.tagName)&&typeof p.target.control!='undefined'&&p.target.control!=null&&/(checkbox|radio)/i.test(p.target.control.type)||/(label)/i.test(p.target.parentNode.tagName)&&typeof p.target.parentNode.control!=
519
+ 'undefined'&&p.target.parentNode.control!=null&&/(checkbox|radio)/i.test(p.target.parentNode.control.type))sa=p.target.getAttribute('for')||p.target.parentNode.getAttribute('for')?!0:!1,N=p.target.control||p.target.parentNode.control;if(!N.disabled&&/(checkbox|radio)/i.test(N.type)&&!sa){if(/checkbox/i.test(N.type))return Ob(N);if(/radio/i.test(N.type))return eb(N,!1,!0)}if(/(button|input)/i.test(N.tagName)&&/(submit|checkbox|radio)/i.test(N.type)||/a/i.test(N.tagName)&&N.attributes.getNamedItem('data-gina-form-submit')||
520
+ /a/i.test(N.parentNode.tagName)&&N.parentNode.attributes.getNamedItem('data-gina-form-submit')){sa=N.attributes.getNamedItem('data-gina-form-submit');var Aa=N.parentNode.attributes.getNamedItem('data-gina-form-submit');if(sa||Aa)ea=!0,Aa=p.currentTarget&&p.currentTarget.getAttribute?p.currentTarget:N.form||null,(Aa=sa?N.getAttribute('data-gina-form-submit-method')||(Aa?Aa.getAttribute('method'):null):N.parentNode.getAttribute('data-gina-form-submit-method')||(Aa?Aa.getAttribute('method'):null))&&
521
+ (sa&&N.form?N.form.setAttribute?N.form.setAttribute('method',Aa):p.currentTarget&&p.currentTarget.setAttribute&&p.currentTarget.setAttribute('method',Aa):N.parentNode.form&&(N.parentNode.form.setAttribute?N.parentNode.form.setAttribute('method',Aa):p.currentTarget&&p.currentTarget.setAttribute&&p.currentTarget.setAttribute('method',Aa)));typeof N.id!='undefined'&&N.getAttribute('id')||N.setAttribute('id','click.'+E());N.id=N.getAttribute('id');if(/^click\./.test(N.id)||z){sa=N.id;if(!sa)return!1;
522
+ /^click\./.test(sa)||(sa=N.id);if(!N.disabled&&/(checkbox|radio)/i.test(N.type)){if(/checkbox/i.test(N.type))return Ob(N);if(/radio/i.test(N.type))return eb(N,!1,!0)}if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;if(N.type=='submit'&&!/^submit\./i.test(sa)||ea&&!/^submit\./i.test(sa))sa='submit.'+sa,n.$forms[c.id].submitTrigger=c.submitTrigger=N.id;N.type!='reset'||/^reset\./i.test(sa)||(sa='reset.'+sa);if(/^submit\./i.test(sa)&&uc(N)&&!vc(N,a,n.$forms[c.id]||c))return cancelEvent(p),
523
+ Cc(n.$forms[c.id]||c),!1;/^submit\./i.test(sa)&&w(n.$forms[c.id]||c,r.resolveTrigger(N,a));gina.events[sa]?(N&&N.__ginaSubmitBoundFor!==sa&&tb(sa,N),cancelEvent(p),triggerEvent(gina,N,sa,p.detail)):ea&&typeof this.id!='undefined'&&this.id!=''&&typeof gina.validator.$forms[this.id]!='undefined'&&(gina.validator.getFormById(this.id).submit(),cancelEvent(p))}}}},bb=function(p){if(p&&p.animationName==='gina-autofill-start'){var N=p.target;if(N&&N.id&&N.form){var ea='change.'+N.id;typeof gina.events[ea]!=
524
+ 'undefined'&&(oc(N)?Pc(n.$forms[N.form.getAttribute('id')]):triggerEvent(gina,N,ea,p.detail))}}};I=function(){var p=null;p='reset.'+a.id;typeof gina.events[p]=='undefined'&&addListener(gina,a,p,function(N){N.preventDefault();var ea=n.$forms[N.currentTarget.id||N.target.id];ea.target.dataset.ginaFormIsResetting=!0;Ua(ea);N=bc(ea.target,ea.rules,!0);Xb(ea.target,N.fields,N.$fields,ea.rules,function(sa){var Aa=sa.isValid();console.debug('silent reset validation result[isValid:'+Aa+']: ',sa);ma(ea.target,
525
+ {});Zb(ea.target,Aa);ea.target.dataset.ginaFormIsResetting=!1})});addListener(gina,a,'reset',Lb);addListener(gina,a,'keydown',fb);addListener(gina,a,'keyup',kb);addListener(gina,a,'focusin',Fa);addListener(gina,a,'focusout',Qa);addListener(gina,a,'change',Db);addListener(gina,a,'click',xb);addListener(gina,a,'animationstart',bb)};I();for(let p=0,N=a.elements.length;p<N;p++)db=a.elements[p],a.contains(db)||(addListener(gina,db,'keydown',fb),c.reassociatedListeners.push({el:db,evt:'keydown',fn:fb}),
526
+ addListener(gina,db,'keyup',kb),c.reassociatedListeners.push({el:db,evt:'keyup',fn:kb}),addListener(gina,db,'focusin',Fa),c.reassociatedListeners.push({el:db,evt:'focusin',fn:Fa}),addListener(gina,db,'focusout',Qa),c.reassociatedListeners.push({el:db,evt:'focusout',fn:Qa}),addListener(gina,db,'change',Db),c.reassociatedListeners.push({el:db,evt:'change',fn:Db}),addListener(gina,db,'click',xb),c.reassociatedListeners.push({el:db,evt:'click',fn:xb}),addListener(gina,db,'animationstart',bb),c.reassociatedListeners.push({el:db,
527
+ evt:'animationstart',fn:bb}));J='validate.'+h;I=function(){addListener(gina,a,J,function(p){cancelEvent(p);var N=c.eventData.error||c.eventData.validation||p.detail;ma(p.target,N.fields||N.error,N.data);var ea=p.target.getAttribute('id');if(typeof N.isValid!='undefined'&&N.isValid()){var sa=n.$forms[ea].target.getAttribute('data-gina-form-inherits-data')||null;sa&&(N.data=A(N.data,JSON.parse(decodeURIComponent(sa))));n.$forms[ea]?n.$forms[ea].send(N.data):c&&c.send(N.data)}else if(n.$forms[ea]&&(n.$forms[ea].isSubmitting=
528
+ !1),ea=n.$forms[ea]||c,/^true$/i.test(ea.isSending)||G(ea),N=N.fields||N.error){p=p.target;qb=!0;try{for(ea=0,sa=p.length;ea<sa;++ea){var Aa=p[ea],Pa=Aa.getAttribute('name');if(Pa&&typeof N[Pa]!='undefined'&&(typeof N[Pa].count!='function'||N[Pa].count()>0)&&Aa.type!='hidden'&&typeof Aa.focus=='function'&&(Aa.focus(),typeof document==='undefined'||!document||document.activeElement===Aa)){Jb={formId:p.getAttribute('id'),elName:Pa};break}}}finally{qb=!1}}})};typeof gina.events[J]!='undefined'&&gina.events[J]==
529
+ 'validate.'+h&&removeListener(gina,c,J,I);I();var tb=function(p,N){/^submit\./i.test(p)||(p='submit.'+p);N.__ginaSubmitBoundFor=p;addListener(gina,N,p,function(ea){cancelEvent(ea);ea=a.getAttribute('id');if(typeof n.$forms[ea]=='undefined'||!/^true$/i.test(n.$forms[ea].isSubmitting)){var sa={};ea={_length:0};var Aa=a.getAttribute('id'),Pa=typeof n.$forms[Aa]!='undefined'?n.$forms[Aa].rules:null;ra(a,function(){triggerEvent(gina,N,p)})||(sa=bc(a,Pa),ea=sa.fields,sa=sa.$fields,Pa=n.$forms[Aa].rules,
530
+ ea._length==0?(delete ea._length,ea={error:[],isValid:function(){return!0},data:Sb(ea)},triggerEvent(gina,a,'validate.'+h,ea)):(h=a.getAttribute('id'),e=(Pa=a.getAttribute('data-gina-form-rule'))?wb(Pa.replace(/\-|\//g,'.')):wb(h.replace(/\-/g,'.')),n.$forms[Aa].isSubmitting=!0,n.$forms[Aa].isSending=!1,Xb(a,ea,sa,e,function(Na){triggerEvent(gina,a,'validate.'+h,Na)})))}})};R=null;db=[];R=[];Ma=null;R=b(a,'button');if(R.length>0)for(let p=0,N=R.length;p<N;++p)R[p].type=='submit'&&db.push(R[p]);R=
531
+ a.getElementsByTagName('a');if(R.length>0)for(let p=0,N=R.length;p<N;++p)R[p].attributes.getNamedItem('data-gina-form-submit')?db.push(R[p]):R[p].getAttribute('id')||/gina\-popin/.test(R[p].className)||gina.popinIsBinded||/gina\-link/.test(R[p].className)||(Ma='link.'+E(),R[p].id=Ma);b=null;Ma=!1;for(let p=0,N=db.length;p<N;++p){R=db[p];if(/button/i.test(R.tagName)&&typeof R.type!='undefined'&&/submit/i.test(R.type)||/a/i.test(R.tagName)&&typeof R.dataset.ginaFormSubmit!='undefined'&&/^true$/i.test(R.dataset.ginaFormSubmit)||
532
+ /a/i.test(R.parentNode.tagName)&&typeof R.parentNode.dataset.ginaFormSubmit!='undefined'&&/^true$/i.test(R.parentNode.dataset.ginaFormSubmit)){/a/i.test(R.parentNode.tagName)&&(R=R.parentNode);if(typeof R.id=='undefined'||typeof R.id!='undefined'&&R.id=='')R.id='click.'+E(),R.setAttribute('id',R.id);/a/i.test(R.tagName)&&typeof R.form=='undefined'&&(R.form={id:c.id});typeof R.dataset.ginaFormSubmitTriggerFor=='undefined'&&typeof n.$forms[c.id]!='undefined'&&typeof n.$forms[c.id].submitTrigger=='undefined'&&
533
+ typeof R.form.id!='undefined'&&c.id==R.form.id&&(n.$forms[c.id].submitTrigger=c.submitTrigger=R.id||R.getAttribute('id'),R.dataset.ginaFormSubmitTriggerFor=c.id)}R.tagName=='A'&&(b=R.getAttribute('onclick'),Ma=R.getAttribute('data-gina-form-submit'),b||Ma||addListener(gina,R,'click',function(ea){ea.preventDefault()}));R.id?J=R.id:(J='click.'+E(),R.id=J,R.setAttribute('id',J));b=/^submit\./i.test(J)?J:'submit.'+J;typeof gina.events[b]!='undefined'&&gina.events[b]==R.id||tb(J,R)}J='submit';addListener(gina,
534
+ a,J,function(p){var N=p.target,ea=N.getAttribute('id'),sa=n.$forms[ea],Aa=c.binded;if(sa&&p.isTrusted){var Pa=document.getElementById(sa.submitTrigger)||null;if(uc(Pa)&&!vc(Pa,N,sa))return cancelEvent(p),Cc(sa),!1}if(typeof p.defaultPrevented!='undefined'&&p.defaultPrevented)return!1;sa&&(Pa=document.getElementById(sa.submitTrigger),uc(Pa)&&!vc(Pa,N,sa)||w(sa,Pa));(z||Aa)&&cancelEvent(p);if((z||Aa)&&ra(N,function(){triggerEvent(gina,N,'submit')}))return!1;p={};sa={_length:0};Aa=typeof gina.validator.$forms[ea]!=
535
+ 'undefined'?gina.validator.$forms[ea].rules:null;for(var Na=Pa=null,La=0,nb=N.length;La<nb;++La)Pa=N[La].getAttribute('name'),Na=N[La].disabled||N[La].getAttribute('disabled'),Na=/disabled|true/i.test(Na)?!0:!1,Pa&&!Na&&(typeof N[La].type!='undefined'&&N[La].type=='checkbox'&&Ac(N[La],Aa?Aa[Pa]:null)?sa[Pa]=N[La].checked:typeof N[La].type!='undefined'&&N[La].type=='radio'||typeof N[La].type!='undefined'&&N[La].type=='checkbox'?N[La].checked?/^(true|false)$/.test(N[La].value)?sa[Pa]=N[La].value=/^true$/.test(N[La].value)?
536
+ !0:!1:sa[Pa]=N[La].value:Aa&&typeof Aa[Pa]!='undefined'&&typeof Aa[Pa].isBoolean!='undefined'&&N[La].type=='checkbox'&&!/^(true|false)$/.test(N[La].value)?sa[Pa]=!1:N[La].type=='radio'&&Aa&&typeof Aa[Pa]!='undefined'&&/^true$/i.test(Aa[Pa].isRequired)&&typeof Aa[Pa].isBoolean=='undefined'&&typeof sa[Pa]=='undefined'&&(sa[Pa]=''):N[La].type=='file'&&N[La].getAttribute('data-gina-form-upload-action')||(sa[Pa]=N[La].value),p[Pa]=N[La],p[Pa].setAttribute('data-gina-form-errors',''));sa._length=sa.count();
537
+ if(sa._length==0)delete sa._length,p={error:[],isValid:function(){return!0},data:Sb(sa)},typeof gina.events['submit.'+ea]!='undefined'?triggerEvent(gina,N,'submit.'+ea,p):triggerEvent(gina,N,'validate.'+ea,p);else{e=(Aa=N.getAttribute('data-gina-form-rule'))?wb(Aa.replace(/\-|\//g,'.')):wb(ea.replace(/\-/g,'.'));Aa=(Aa=N.id||(typeof N.getAttribute=='function'?N.getAttribute('id'):null))&&typeof CSS!='undefined'&&typeof CSS.escape=='function'?CSS.escape(Aa):Aa;if(typeof N.querySelector=='function'&&
538
+ N.querySelector('[data-gina-form-validator-query-pending]')||Aa&&document.querySelector('[form="'+Aa+'"][data-gina-form-validator-query-pending]')){if(/^true$/i.test(n.$forms[ea].isSubmitting))return!1;n.$forms[ea].isSubmitting=!0;n.$forms[ea].isSending=!1}n.$forms[ea].isValidating=!0;Xb(N,sa,p,e,function(Gb){n.$forms[ea].isValidating=!1;typeof gina.events['submit.'+ea]!='undefined'?(n.$forms[ea].isSubmitting=!1,triggerEvent(gina,N,'submit.'+ea,Gb)):triggerEvent(gina,N,'validate.'+ea,Gb)})}});n.$forms[h].binded=
539
539
  !0;/^(true)$/i.test(c.target.dataset.ginaFormLiveCheckEnabled)&&c.rules.count()>0?(console.debug('silent validation mode on'),b=hc(bc(c.target,c.rules)),Xb(c.target,b.fields,b.$fields,c.rules,function(p){console.debug('silent validation result[isValid:'+p.isValid()+']: ',p);m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),window.ginaToolbar.update('forms',{id:h,errors:p.error}));Zb(c,p.isValid())})):/^(true)$/i.test(c.target.dataset.ginaFormLiveCheckEnabled)||
540
540
  Zb(c,!0)},Zb=function(a,b){a instanceof HTMLFormElement&&(a=a.getAttribute('id'),a=n.$forms[a]);if(typeof a.submitTrigger=='undefined'&&/^(true)$/i.test(a.target.dataset.ginaFormLiveCheckEnabled))console.warn('This might be normal, so do not worry if this form is handled by your javascript: `'+a.id+'`\nGina could not complete `updateSubmitTriggerState()`: `submitTrigger` might not be attached to form instance `'+a.id+'`\nTo disable this warning, You just need to disable `Form Live Checking on your form by adding to your <form>: `data-gina-form-live-check-enabled=false``');
541
541
  else if(document.getElementById(a.submitTrigger)){var c=document.getElementById(a.submitTrigger);/^true$/i.test(b)||!/^(true)$/i.test(a.target.dataset.ginaFormLiveCheckEnabled)?(c.disabled=!1,c.removeAttribute('data-gina-form-submit-gated'),c.classList.remove('gina-form-submit-disabled')):(c.setAttribute('data-gina-form-submit-gated','true'),c.classList.add('gina-form-submit-disabled'))}},oc=function(a){if(!a||/^(radio|checkbox|file)$/i.test(a.type))return!1;var b;if(b=a.value==='')a:{if(a&&typeof a.matches==
542
542
  'function')for(var c=[':autofill',':-webkit-autofill'],h=0;h<c.length;++h)try{if(a.matches(c[h])){b=!0;break a}}catch(u){}b=!1}return b},hc=function(a){if(!a||!a.$fields||!a.fields)return a;var b=0,c;for(c in a.$fields)oc(a.$fields[c])&&(delete a.$fields[c],delete a.fields[c],++b);b>0&&typeof a.fields._length!='undefined'&&(delete a.fields._length,a.fields._length=a.fields.count()||0);return a},Pc=function(a){if(a&&a.target&&a.rules&&/^(true)$/i.test(a.target.dataset.ginaFormLiveCheckEnabled)&&a.rules.count()!=
543
543
  0){var b=hc(bc(a.target,a.rules));Xb(a.target,b.fields,b.$fields,a.rules,function(c){Zb(a,c.isValid())})}},uc=function(a){return a&&typeof a.getAttribute=='function'?!('disabled'in a)&&a.getAttribute('disabled')!=null&&a.getAttribute('disabled')!='false'||a.getAttribute('aria-disabled')=='true'||a.getAttribute('data-gina-form-submit-gated')=='true':!1},vc=function(a,b,c){if(!a||typeof a.getAttribute!='function'||!b||typeof b.querySelector!='function'||a.getAttribute('data-gina-form-submit-gated')!=
544
544
  'true'||!('disabled'in a)&&a.getAttribute('disabled')!=null&&a.getAttribute('disabled')!='false'||a.getAttribute('aria-disabled')=='true')return!1;a=(a=b.id||(typeof b.getAttribute=='function'?b.getAttribute('id'):null))&&typeof CSS!='undefined'&&typeof CSS.escape=='function'?CSS.escape(a):a;if(!(b.querySelector('[data-gina-form-validator-query-pending]')||a&&document.querySelector('[form="'+a+'"][data-gina-form-validator-query-pending]')))return!1;if(c&&typeof c.errors!='undefined'&&c.errors)for(var h in c.errors)if(c.errors.hasOwnProperty(h)){var u=
545
- c.errors[h];if(u&&typeof u.count=='function'?u.count()>0:u)if(u=typeof CSS!='undefined'&&typeof CSS.escape=='function'?CSS.escape(h):h,!(b.querySelector('[name="'+u+'"][data-gina-form-validator-query-pending]')||a&&document.querySelector('[form="'+a+'"][name="'+u+'"][data-gina-form-validator-query-pending]')))return!1}return!0},Cc=function(a){if(a&&a.target){var b=a.target,c=hc(bc(b,a.rules)),h=function(u){var z=u.fields||u.error;ma(b,z,u.data);a:if(b&&z){ob=!0;try{for(var e=0,J=b.length;e<J;++e){var I=
546
- b[e],Q=I.getAttribute('name');if(Q&&typeof z[Q]!='undefined'&&(typeof z[Q].count!='function'||z[Q].count()>0)&&I.type!='hidden'&&typeof I.focus=='function'&&(I.focus(),typeof document==='undefined'||!document||document.activeElement===I)){Kb={formId:b.getAttribute('id'),elName:Q};break a}}}finally{ob=!1}}Zb(a,u.isValid())};h.isRevealCompletion=!0;Xb(b,c.fields,c.$fields,a.rules,h)}},bc=function(a,b,c){typeof c=='undefined'&&(c=!1);var h={},u={},z=a.id||a.getAttribute('id');typeof b=='undefined'&&
545
+ c.errors[h];if(u&&typeof u.count=='function'?u.count()>0:u)if(u=typeof CSS!='undefined'&&typeof CSS.escape=='function'?CSS.escape(h):h,!(b.querySelector('[name="'+u+'"][data-gina-form-validator-query-pending]')||a&&document.querySelector('[form="'+a+'"][name="'+u+'"][data-gina-form-validator-query-pending]')))return!1}return!0},Cc=function(a){if(a&&a.target){var b=a.target,c=hc(bc(b,a.rules)),h=function(u){var z=u.fields||u.error;ma(b,z,u.data);a:if(b&&z){qb=!0;try{for(var e=0,J=b.length;e<J;++e){var I=
546
+ b[e],R=I.getAttribute('name');if(R&&typeof z[R]!='undefined'&&(typeof z[R].count!='function'||z[R].count()>0)&&I.type!='hidden'&&typeof I.focus=='function'&&(I.focus(),typeof document==='undefined'||!document||document.activeElement===I)){Jb={formId:b.getAttribute('id'),elName:R};break a}}}finally{qb=!1}}Zb(a,u.isValid())};h.isRevealCompletion=!0;Xb(b,c.fields,c.$fields,a.rules,h)}},bc=function(a,b,c){typeof c=='undefined'&&(c=!1);var h={},u={},z=a.id||a.getAttribute('id');typeof b=='undefined'&&
547
547
  (b=typeof n.$forms[z].rules!='undefined'&&n.$forms[z].rules.count()>0?n.$forms[z].rules:null,b||typeof gina.validator.$forms[z]=='undefined'||(b=gina.validator.$forms[z].rules));for(var e=0,J=a.length;e<J;++e){if(c)switch(a[e].tagName.toLowerCase()){case 'input':/^(hidden|text)$/i.test(a[e].type)&&(a[e].value=a[e].defaultValue)}if(/button/i.test(a[e].tagName)&&typeof a[e].type!='undefined'&&/submit/i.test(a[e].type)||/a/i.test(a[e].tagName)&&typeof a[e].dataset.ginaFormSubmit!='undefined'&&/^true$/i.test(a[e].dataset.ginaFormSubmit))/a/i.test(a[e].tagName)&&
548
- typeof a[e].form=='undefined'&&(a[e].form={id:z}),typeof a[e].dataset.ginaFormSubmitTriggerFor=='undefined'&&typeof n.$forms[z]!='undefined'&&typeof n.$forms[z].submitTrigger=='undefined'&&typeof a[e].form.id!='undefined'&&z==a[e].form.id&&(n.$forms[z].submitTrigger=a[e].id||a[e].getAttribute('id'),a[e].dataset.ginaFormSubmitTriggerFor=z);var I=a[e].getAttribute('name');var Q=a[e].disabled||a[e].getAttribute('disabled');Q=/disabled|true/i.test(Q)?!0:!1;if(I&&!Q){if(typeof a[e].type!='undefined'&&
548
+ typeof a[e].form=='undefined'&&(a[e].form={id:z}),typeof a[e].dataset.ginaFormSubmitTriggerFor=='undefined'&&typeof n.$forms[z]!='undefined'&&typeof n.$forms[z].submitTrigger=='undefined'&&typeof a[e].form.id!='undefined'&&z==a[e].form.id&&(n.$forms[z].submitTrigger=a[e].id||a[e].getAttribute('id'),a[e].dataset.ginaFormSubmitTriggerFor=z);var I=a[e].getAttribute('name');var R=a[e].disabled||a[e].getAttribute('disabled');R=/disabled|true/i.test(R)?!0:!1;if(I&&!R){if(typeof a[e].type!='undefined'&&
549
549
  a[e].type=='radio'||typeof a[e].type!='undefined'&&a[e].type=='checkbox')if(a[e].type=='checkbox'&&Ac(a[e],b?b[I]:null))b&&(typeof b[I]=='undefined'?b[I]={isBoolean:!0}:typeof b[I]!='undefined'&&typeof b[I].isBoolean=='undefined'&&(b[I].isRequired=!0,b[I].isBoolean=!0)),u[I]=a[e].checked;else if(a[e].checked||typeof b[I]=='undefined'&&a[e].value!='undefined'&&/^(true|false)$/.test(a[e].value)||!a[e].checked&&typeof b[I]!='undefined'&&typeof b[I].isBoolean!='undefined'&&/^(true|false)$/.test(a[e].value))if(/^(true|false)$/.test(a[e].value))if(typeof b[I]==
550
550
  'undefined'?b[I]={isBoolean:!0}:typeof b[I]!='undefined'&&typeof b[I].isBoolean=='undefined'&&(b[I].isRequired=!0,b[I].isBoolean=!0),a[e].type=='radio'){if(typeof b[I]=='undefined')throw Error('rule '+I+' is not defined');/^true$/.test(b[I].isBoolean)&&a[e].checked&&(u[I]=/^true$/.test(a[e].value)?!0:!1)}else u[I]=a[e].value=/^true$/.test(a[e].value)?!0:!1;else u[I]=a[e].value;else b&&typeof b[I]!='undefined'&&typeof b[I].isBoolean!='undefined'&&typeof b[I].isRequired!='undefined'&&!/^(true|false)$/.test(a[e].value)?
551
551
  u[I]=!1:a[e].type=='radio'&&b&&typeof b[I]!='undefined'&&/^true$/i.test(b[I].isRequired)&&typeof b[I].isBoolean=='undefined'&&typeof u[I]=='undefined'&&(u[I]='');else a[e].type=='file'&&a[e].getAttribute('data-gina-form-upload-action')||(u[I]=a[e].value);typeof h[I]=='undefined'&&(h[I]=a[e],h[I].setAttribute('data-gina-form-errors',''))}}u._length=u.count()||0;return{$fields:h,fields:u,rules:b}},ec=function(a){return String(a).replace(/[\u0000-\u001f"\\]/g,function(b){switch(b){case '"':return'\\"';
552
552
  case '\\':return'\\\\';case '\b':return'\\b';case '\f':return'\\f';case '\n':return'\\n';case '\r':return'\\r';case '\t':return'\\t';default:return'\\u'+('000'+b.charCodeAt(0).toString(16)).slice(-4)}})},Dc=function(a,b,c,h){h=typeof h!='undefined'&&/^true$/i.test(h);return typeof a[c]=='undefined'||/^(null|NaN|undefined|\s*)$/i.test(b[c])?h&&/^\s*$/.test(b[c])?'\\"\\"':b[c]:typeof a[c].isNumber!='undefined'||typeof a[c].isInteger!='undefined'||typeof a[c].isFloat!='undefined'||typeof a[c].toFloat!=
553
553
  'undefined'||typeof a[c].toInteger!='undefined'?(/,/.test(b[c])&&(b[c]=b[c].replace(/,/g,'.').replace(/\s+/g,'')),h&&typeof b[c]!='number'&&typeof b[c]!='boolean'&&!/^ *-?\d+(?:\.\d+)? *$/.test(b[c])?'\\"'+ec(ec(b[c]))+'\\"':b[c]):typeof b[c]=='boolean'?b[c]:h&&a[c].isBoolean?/^true$/i.test(b[c])?!0:!1:h?'\\"'+ec(ec(b[c]))+'\\"':b[c]},Ec=function(a,b){typeof a!='string'&&(a=JSON.stringify(JSON.clone(a)));a=JSON.parse(a.replace(/"(true|false)"/gi,'$1'));for(let c in b)b[c]=Dc(a,b,c);return b},Qc=function(a,
554
554
  b,c,h){var u=JSON.parse(a.replace(/"(true|false)"/gi,'$1'));h&&(c=c[Object.getOwnPropertyNames(c)[0]].form,c=bc(c,u),delete c.fields._length,b=c.fields,c=c.$fields);c=[];var z={};for(let e in b)c.push(e);a=l.substituteFieldTokens(a,c,function(e){if(typeof z[e]!='undefined')return z[e];let J='\\"'+ec(ec(b[e]))+'\\"';typeof u[e]!='undefined'?J=Dc(u,b,e,!0):console.warn('`'+e+'` is used in a dynamic rule without definition. This could lead to an evaluation error. Casting `'+e+'` to `string`.');return z[e]=
555
- J});try{return JSON.parse(a)}catch(e){return console.warn('[FormValidator] Could not parse the dynamised rules - validating against the rules as declared.\n('+e.message+')'),u}},Xb=function(a,b,c,h,u,z){delete b._length;var e=JSON.stringify(h);b=Ec(e,b);/\$(.*)/.test(e)&&(h=c&&!/^form$/i.test(a.tagName)&&c.count()==1&&/true/i.test(a.form.dataset.ginaFormLiveCheckEnabled)?!0:!1,h=Qc(e,b,c,h));var J=null,I=e=null,Q=!1,pa=0;b.count();var Ba=!1,za=null,Ma=null,Qa=null,Ra=0,jb={},Wa=null,Ka=null,Xa=null,
556
- xb=function(eb,Za,Lb){if(typeof Za[eb]=='undefined'){skipTest=!1;for(var fb in Za)if(!/^_comment$/i.test(fb)&&/^\//.test(fb)&&(Wa=fb.match(/\/(.*)\//).pop(),Ka=fb.replace('/'+Wa+'/',''),Wa=Wa.replace(/\[/g,'\\[').replace(/\]/g,'\\]'),Wa=new RegExp(Wa,Ka),Wa.test(eb))){skipTest=!0;Za[eb]=Za[fb];break}if(typeof Za[eb]=='undefined')return}var Na=Object.getOwnPropertyNames(Za)||[];fb=0;var Fa=Na.length;if(Fa>0)for(;fb<Fa;)typeof Za[Na[fb]].exclude!='undefined'&&/^true$/i.test(Za[Na[fb]].exclude)&&(Na.splice(fb,
557
- 1),Fa--,fb--),fb++;for(var kb in Za[eb])if(/^is\d+$/.test(kb)&&typeof hb[eb][kb]=='undefined'&&(hb[eb][kb]=function(){},hb[eb][kb]=aa(hb[eb][kb],hb[eb][kb.replace(/\d+/,'')]),hb[eb][kb]=function(M,ea){return function(){var na=typeof window!='undefined'?window:typeof global!='undefined'?global:null;na&&(na._currentValidatorAlias=M);return ea.apply(this,arguments)}}(kb,hb[eb][kb])),typeof hb[eb][kb]=='function')try{if(Array.isArray(Za[eb][kb])){Xa=JSON.clone(Za[eb][kb]);if(!/^is\d*$/.test(kb)&&/\$[\-\w\[\]]*/.test(Xa[0])){var Eb=
558
- Xa[0].match(/\$[\-\w\[\]]*/g);fb=0;for(var Db=Eb.length;fb<Db;++fb){var db=Eb[fb].replace('$','');typeof hb[db]!='undefined'&&typeof hb[db].value!='undefined'&&(Xa[0]=Xa[0].replace(Eb[fb],hb[db].value))}}hb[eb][kb].apply(hb[eb],Xa)}else if(/^query$/.test(kb)){za=c[eb];Ma=za.getAttribute('id');Qa='asyncCompleted.'+Ma;var ub=0,p=!1;if(typeof jb[Ma]!='undefined'){console.debug('event `'+Qa+'` already armed by this pass');continue}jb[Ma]=!0;++Ra;addListener(gina,za,Qa,function na(ea){ea.preventDefault();
559
- ea.currentTarget.removeEventListener(ea.type,na,!1);ub++;--Ra;var Ca=Object.getOwnPropertyNames(Za[eb]);Ca[Ca.length-1]==kb&&(Ba=!0);Ca='asyncCompleted.'+ea.target.getAttribute('id');if(!/true/.test(p)){hb[eb]=ea.detail;var Pa=a;/^form$/i.test(a.tagName)||(Pa=a.form);var Ha=Pa.getAttribute('id'),Sa=null;if(Ba&&Ra<=0&&!p&&(p=!0,removeListener(gina,ea.target,Ca),u._data=hb.toData(),u._errors=hb.getErrors(),u._errors&&u._errors.count()>0)){typeof n.$forms[Ha].errors=='undefined'&&(n.$forms[Ha].errors=
560
- {});typeof u._errors[eb]!='undefined'&&(n.$forms[Ha].errors[eb]=u._errors[eb]);console.debug('[A] Refreshing warning/error on field '+eb);if(!Sa&&/^true|false$/i.test(n.$forms[Ha].isValidating)||hb[eb].target.value!='')pb(Rb[eb]),ma(Pa,u._errors,u._data,eb),Zb(Pa,Sa);m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),window.ginaToolbar.update('forms',{id:Ha,errors:n.$forms[Ha].errors||{}}));triggerEvent(gina,a,'validated.'+Ha,u);return}/^true$/i.test(n.$forms[Ha].isSubmitting)?
561
- triggerEvent(gina,a,'validated.'+Ha,u):(ea=!1,Na.length==1||Na[Na.length-1]==eb?((Sa=u._errors.count()>0?!1:!0)&&(ea=!0),!Sa&&/^true|false$/i.test(n.$forms[Ha].isValidating)&&(console.debug('[1] Should update error display now ',u._errors),n.$forms[Ha].errors=A(u._errors,n.$forms[Ha].errors),pb(Rb[eb]),ma(Pa,u._errors,u._data,eb),Zb(Pa,Sa)),triggerEvent(gina,a,'validated.'+Ha,u)):/^true$/i.test(n.$forms[Ha].isValidating)&&Na.length>1&&Na[Na.length-1]!=eb?ea=!0:Ba&&Ra<=0&&u&&u.isRevealCompletion&&
562
- triggerEvent(gina,a,'validated.'+Ha,u),ea&&Xb(Pa,Qb,Rb,Za,function(mb){n.$forms[Ha].isValidating=!1;Sa=mb.isValid();m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),window.ginaToolbar.update('forms',{id:Ha,errors:mb.error||{}}));ma(Pa,mb.error,mb.data,eb);Zb(Pa,Sa)}))}});hb[eb][kb](Za[eb][kb]);continue}else hb[eb][kb](Za[eb][kb]);delete Lb[eb]}catch(M){if(kb=='conditions')throw Error('[ ginaFormValidator ] could not evaluate `'+eb+'->'+kb+
563
- '()` where `conditions` must be a `collection` (Array)\nStack:\n'+M);throw Error('[ ginaFormValidator ] could not evaluate `'+eb+'->'+kb+'()`\nStack:\n'+M);}},hb=null,bb={},Ob=!1;D?/^form$/i.test(a.tagName)?(J=a.getAttribute('id'),e='validated.'+J,n.$forms[J].fields=b,typeof a.eventData!='undefined'&&typeof a.eventData.error!='undefined'&&delete a.eventData.error,hb=new l(b,c,v)):(Ob=!0,J=a.form.getAttribute('id')||a.form.target.getAttribute('id'),e='validated.'+J,n.$forms[J].fields=b,hb=new l(b,
564
- c,v,n.$forms[J].fieldsSet)):hb=new l(b,null,v,void 0,z);var Qb=null,Rb=null;Ob?(z=a.form.getAttribute('id'),Ob=bc(n.$forms[z].target,n.$forms[z].rules,!1),Qb=Ec(JSON.stringify(n.$forms[z].rules),JSON.clone(Ob.fields)),Rb=Ob.$fields):(Qb=JSON.clone(b),Rb=c);z=typeof h!='undefined'?JSON.clone(h):{};var Nb=function(eb,Za,Lb,fb,Na,Fa,kb,Eb){var Db=null;if(typeof Fa!='undefined')for(var db in fb){var ub=Na&&typeof Na[db]!='undefined'?Na[db].getAttribute('type'):null;if(D&&typeof Na[db]=='undefined')console.warn('field `'+
565
- db+'` found for your form rule ('+eb.id+'), but not found in $field collection.\nPlease, check your HTML or remove `'+db+'` declaration from your rule if this is a mistake.');else{D&&Na[db].getAttribute('data-gina-form-element-group')&&typeof Fa[db]!='undefined'&&typeof Fa[db].exclude!='undefined'&&Fa[db].exclude&&!Na[db].disabled&&(Fa[db].exclude=!1);var p=typeof Fa['_case_'+db]!='undefined'?!0:!1;if(D&&Na[db].tagName.toLowerCase()=='input'&&/^(checkbox)$/i.test(ub))if(!Na[db].checked&&typeof Fa[db]!=
566
- 'undefined'&&typeof Fa[db].isRequired!='undefined'&&/^(false)$/i.test(Fa[db].isRequired)||Na[db].disabled)Fa[db]={exclude:!0};else{if(!Na[db].checked&&typeof Fa[db]=='undefined')continue}else D&&Na[db].tagName.toLowerCase()=='input'&&/^(radio)$/i.test(ub)&&console.debug('Radio: ',Na[db].id,Na[db].checked,Na[db].value);for(var M in Fa)if(/^_case_/.test(M)&&typeof Fa[M].conditions!='undefined'&&(!Array.isArray(Fa[M].conditions)||Fa[M].conditions.length)&&typeof Fa[M].conditions[0].rules!='undefined'&&
567
- typeof Fa[M].conditions!='undefined'&&Array.isArray(Fa[M].conditions))if(Db=M.replace('_case_',''),typeof Rb[Db]=='undefined')console.warn('Found case `'+M+'` but field `'+Db+'` is misssing in the dom.\n You should add `'+Db+'` element to your form in order to allow Validator to process this case.');else{typeof Za[Db]=='undefined'&&(Za[Db]=Rb[Db].value);ub=Za[Db];D&&(ub=='true'?ub=!0:ub=='false'&&(ub=!1));for(var ea=0,na=Fa[M].conditions.length;ea<na;++ea)if(!(Array.isArray(Fa[M].conditions[ea].case)&&
568
- Fa[M].conditions[ea].case.indexOf(ub)==-1||!Array.isArray(Fa[M].conditions[ea].case)&&Fa[M].conditions[ea].case!=ub))for(var Ca in Fa[M].conditions[ea].rules)if(!/^_comment$/i.test(Ca)&&Ca!=Db&&Na[Ca])if(db==Ca||/^\//.test(Ca)||typeof fb[Ca]!='undefined'||typeof Za[Ca]=='undefined')if(/^\//.test(Ca)){if(Wa=Ca.match(/\/(.*)\//).pop(),Ka=Ca.replace('/'+Wa+'/',''),Wa=Wa.replace(/\[/g,'\\[').replace(/\]/g,'\\]'),Wa=new RegExp(Wa,Ka),Wa.test(db)){if(Fa[M].conditions[ea].case==ub||/^\//.test(Fa[M].conditions[ea].case)&&
569
- (new RegExp(Fa[M].conditions[ea].case)).test(ub))Pa=typeof Fa[Ca]!='undefined'?Fa[Ca]:{},Fa[Ca]=A(Fa[M].conditions[ea].rules[Ca],Pa);Db!=Ca&&typeof Fa[Ca]!='undefined'&&xb(Ca,Fa,fb)}}else typeof Fa[M].conditions[ea].rules[Ca]!='undefined'&&(caseField=Ca,ub=fb[caseField],typeof Na[caseField]=='undefined'?console.warn('ignoring case `'+caseField+'`: field `NaN'):(D&&/^(true|false)$/i.test(ub)&&typeof Fa[caseField]!='undefined'&&typeof Fa[caseField].isBoolean!='undefined'&&/^(true)$/i.test(Fa[caseField].isBoolean)&&
570
- (ub=/^(true)$/i.test(ub)?!0:!1),typeof Fa[M].conditions[ea].rules[Ca]!='undefined'&&(Pa=typeof Fa[M].conditions[ea].rules[Ca]!='undefined'?Fa[M].conditions[ea].rules[Ca]:{},Fa[Ca]=Pa),Db!=Ca&&typeof Fa[Ca]!='undefined'&&typeof fb[Ca]!='undefined'&&xb(Ca,Fa,fb)));else{fb[Ca]=Za[Ca];var Pa=typeof Fa[Ca]!='undefined'?Fa[Ca]:{};Fa[Ca]=A(Fa[M].conditions[ea].rules[Ca],Pa);xb(Ca,Fa,fb)}}if(Db==db)typeof Fa[db]!='undefined'&&(p=Za[db],xb(db,Fa,Za),typeof Za[db]=='undefined'&&typeof p!='undefined'&&(Za[db]=
571
- p));else if(ub=Za[db],typeof Fa[db]!='undefined'&&xb(db,Fa,Za),!p&&typeof Lb['_case_'+db]=='undefined'||typeof ub=='undefined'||typeof Za[db]!='undefined'||(Za[db]=ub),p){++Eb;p=Fa['_case_'+db].conditions;if(!p)throw Error('[ ginaFormValidator ] case `_case_'+db+'` found without `condition(s)` !\nPlease, check your delcaration for `_case_'+db+'`');for(let mb=0,Hb=p.length;mb<Hb;++mb)if(ub=Za[db],D&&(fb[db]=='true'?ub=!0:fb[db]=='false'&&(ub=!1)),p[mb]['case']===ub||Array.isArray(p[mb]['case'])&&p[mb]['case'].indexOf(ub)>
572
- -1||/^\//.test(p[mb]['case'])){Pa={};if(typeof p[mb].rules[db]=='undefined'&&typeof Za[db]=='undefined'||Na[db].disabled)p[mb].rules[db]={exclude:!0};for(var Ha in p[mb].rules)if(!/^_comment$/i.test(Ha))if(/^\//.test(Ha)){Wa=Ha.match(/\/(.*)\//).pop();Ka=Ha.replace('/'+Wa+'/','');Wa=Wa.replace(/\[/g,'\\[').replace(/\]/g,'\\]');Wa=new RegExp(Wa,Ka);for(var Sa in Na)Wa.test(Sa)&&(/^\//.test(p[mb]['case'])?(Wa=p[mb]['case'].match(/\/(.*)\//).pop(),Ka=p[mb]['case'].replace('/'+Wa+'/',''),Wa=new RegExp(Wa,
573
- Ka),Wa.test(ub)&&(Pa[Sa]=p[mb].rules[Ha])):Pa[Sa]=p[mb].rules[Ha],typeof fb[Sa]=='undefined'&&typeof Na[Sa]!='undefined'&&typeof Na[Sa].value!='undefined'&&(fb[Sa]=Na[Sa].value,D&&/(true|false)/i.test(fb[Sa])&&(fb[Sa]=='true'?fb[Sa]=!0:fb[Sa]=='false'&&(fb[Sa]=!1)),hb.addField(Sa,fb[Sa]),typeof Lb[Sa]!='undefined'&&(Pa[Sa]=A(Pa[Sa],Lb[Sa]))))}else/^\//.test(p[mb]['case'])?(Wa=p[mb]['case'].match(/\/(.*)\//).pop(),Ka=p[mb]['case'].replace('/'+Wa+'/',''),Wa=Wa.replace(/\[/g,'\\[').replace(/\]/g,'\\]'),
574
- Wa=new RegExp(Wa,Ka),Wa.test(ub)&&(Pa[Ha]=p[mb].rules[Ha])):Pa[Ha]=p[mb].rules[Ha],typeof fb[Ha]=='undefined'&&typeof Na[Ha]!='undefined'&&typeof Na[Ha].value!='undefined'&&(fb[Ha]=Na[Ha].value,D&&/(true|false)/i.test(fb[Ha])&&(fb[Ha]=='true'?fb[Ha]=!0:fb[Ha]=='false'&&(fb[Ha]=!1)),hb.addField(Ha,fb[Ha]),typeof Lb[Ha]!='undefined'&&(Pa[Ha]=A(Pa[Ha],Lb[Ha])));++pa;if(D)Nb(eb,Za,Lb,fb,Na,Pa,kb,Eb);else return Nb(eb,Za,Lb,fb,Na,Pa,kb,Eb)}--Eb}}}--pa;if(Eb<=0&&pa<0){Za=hb.getErrors();for(db in Za){for(rule in Za[db])bb[db]||
575
- (bb[db]=''),bb[db].indexOf(rule)<0&&(bb[db]+=rule+' ');D&&Na[db].setAttribute('data-gina-form-errors',bb[db].substring(0,bb[db].length-1))}try{I=Sb(hb.toData()),m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.validated||(gina.forms.validated={}),gina.forms.validated[J]||(gina.forms.validated[J]={}),window.ginaToolbar.update('forms',{id:J,validated:I}))}catch(mb){throw mb;}Ba=!0;if(!Q&&Ra<=0)if(typeof kb!='undefined'&&typeof kb==='function')kb._errors=hb.getErrors(),kb._data=
576
- hb.toData(),triggerEvent(gina,eb,'validated.'+J,kb);else return Q=!0,{isValid:hb.isValid,error:Za,data:I}}};D&&typeof u==='function'&&addListener(gina,a,e,function Lb(Za){Za.preventDefault();if(Za.detail===u&&(Za.currentTarget.removeEventListener(Za.type,Lb,!1),!Q)){Q=!0;Ba=!1;Ra=0;var fb=Za.detail,Na=fb._data||hb.toData(),Fa=fb._errors||hb.getErrors()||null;console.debug('instance errors: ',n.$forms[J].errors,' VS cbErrors: ',Fa,hb.isValid(),' VS d.getErrors(): ',hb.getErrors());Fa.count()>0&&hb.isValid()&&
577
- (hb.isValid=function(){return!1});fb({isValid:hb.isValid,error:Fa,data:Sb(Na)});removeListener(gina,Za.target,'validated.'+Za.target.id)}});if(D)Nb(a,Qb,z,b,c,h,u,0);else return Nb(a,Qb,z,b,c,h,u,0)},Fc=function(a,b){if(!a||typeof a!='object')return n;b||=typeof gina!='undefined'&&gina.config&&gina.config.culture?gina.config.culture:'en';n._errorLabelsByCulture||(n._errorLabelsByCulture={});n._errorLabelsByCulture[b]=A(JSON.clone(a),n._errorLabelsByCulture[b]||{});return n};return D?Wb(f):X(f,q,F,
555
+ J});try{return JSON.parse(a)}catch(e){return console.warn('[FormValidator] Could not parse the dynamised rules - validating against the rules as declared.\n('+e.message+')'),u}},Xb=function(a,b,c,h,u,z){delete b._length;var e=JSON.stringify(h);b=Ec(e,b);/\$(.*)/.test(e)&&(h=c&&!/^form$/i.test(a.tagName)&&c.count()==1&&/true/i.test(a.form.dataset.ginaFormLiveCheckEnabled)?!0:!1,h=Qc(e,b,c,h));var J=null,I=e=null,R=!1,oa=0;b.count();var Ca=!1,za=null,Ma=null,Ra=null,Sa=0,jb={},Wa=null,Ja=null,Xa=null,
556
+ yb=function(eb,db,Lb){if(typeof db[eb]=='undefined'){skipTest=!1;for(var fb in db)if(!/^_comment$/i.test(fb)&&/^\//.test(fb)&&(Wa=fb.match(/\/(.*)\//).pop(),Ja=fb.replace('/'+Wa+'/',''),Wa=Wa.replace(/\[/g,'\\[').replace(/\]/g,'\\]'),Wa=new RegExp(Wa,Ja),Wa.test(eb))){skipTest=!0;db[eb]=db[fb];break}if(typeof db[eb]=='undefined')return}var kb=Object.getOwnPropertyNames(db)||[];fb=0;var Fa=kb.length;if(Fa>0)for(;fb<Fa;)typeof db[kb[fb]].exclude!='undefined'&&/^true$/i.test(db[kb[fb]].exclude)&&(kb.splice(fb,
557
+ 1),Fa--,fb--),fb++;for(var Qa in db[eb])if(/^is\d+$/.test(Qa)&&typeof hb[eb][Qa]=='undefined'&&(hb[eb][Qa]=function(){},hb[eb][Qa]=aa(hb[eb][Qa],hb[eb][Qa.replace(/\d+/,'')]),hb[eb][Qa]=function(N,ea){return function(){var sa=typeof window!='undefined'?window:typeof global!='undefined'?global:null;sa&&(sa._currentValidatorAlias=N);return ea.apply(this,arguments)}}(Qa,hb[eb][Qa])),typeof hb[eb][Qa]=='function')try{if(Array.isArray(db[eb][Qa])){Xa=JSON.clone(db[eb][Qa]);if(!/^is\d*$/.test(Qa)&&/\$[\-\w\[\]]*/.test(Xa[0])){var Db=
558
+ Xa[0].match(/\$[\-\w\[\]]*/g);fb=0;for(var xb=Db.length;fb<xb;++fb){var bb=Db[fb].replace('$','');typeof hb[bb]!='undefined'&&typeof hb[bb].value!='undefined'&&(Xa[0]=Xa[0].replace(Db[fb],hb[bb].value))}}hb[eb][Qa].apply(hb[eb],Xa)}else if(/^query$/.test(Qa)){za=c[eb];Ma=za.getAttribute('id');Ra='asyncCompleted.'+Ma;var tb=0,p=!1;if(typeof jb[Ma]!='undefined'){console.debug('event `'+Ra+'` already armed by this pass');continue}jb[Ma]=!0;++Sa;addListener(gina,za,Ra,function sa(ea){ea.preventDefault();
559
+ ea.currentTarget.removeEventListener(ea.type,sa,!1);tb++;--Sa;var Aa=Object.getOwnPropertyNames(db[eb]);Aa[Aa.length-1]==Qa&&(Ca=!0);Aa='asyncCompleted.'+ea.target.getAttribute('id');if(!/true/.test(p)){hb[eb]=ea.detail;var Pa=a;/^form$/i.test(a.tagName)||(Pa=a.form);var Na=Pa.getAttribute('id'),La=null;if(Ca&&Sa<=0&&!p&&(p=!0,removeListener(gina,ea.target,Aa),u._data=hb.toData(),u._errors=hb.getErrors(),u._errors&&u._errors.count()>0)){typeof n.$forms[Na].errors=='undefined'&&(n.$forms[Na].errors=
560
+ {});typeof u._errors[eb]!='undefined'&&(n.$forms[Na].errors[eb]=u._errors[eb]);console.debug('[A] Refreshing warning/error on field '+eb);if(!La&&/^true|false$/i.test(n.$forms[Na].isValidating)||hb[eb].target.value!='')rb(Rb[eb]),ma(Pa,u._errors,u._data,eb),Zb(Pa,La);m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),window.ginaToolbar.update('forms',{id:Na,errors:n.$forms[Na].errors||{}}));triggerEvent(gina,a,'validated.'+Na,u);return}/^true$/i.test(n.$forms[Na].isSubmitting)?
561
+ triggerEvent(gina,a,'validated.'+Na,u):(ea=!1,kb.length==1||kb[kb.length-1]==eb?((La=u._errors.count()>0?!1:!0)&&(ea=!0),!La&&/^true|false$/i.test(n.$forms[Na].isValidating)&&(console.debug('[1] Should update error display now ',u._errors),n.$forms[Na].errors=A(u._errors,n.$forms[Na].errors),rb(Rb[eb]),ma(Pa,u._errors,u._data,eb),Zb(Pa,La)),triggerEvent(gina,a,'validated.'+Na,u)):/^true$/i.test(n.$forms[Na].isValidating)&&kb.length>1&&kb[kb.length-1]!=eb?ea=!0:Ca&&Sa<=0&&u&&u.isRevealCompletion&&
562
+ triggerEvent(gina,a,'validated.'+Na,u),ea&&Xb(Pa,Qb,Rb,db,function(nb){n.$forms[Na].isValidating=!1;La=nb.isValid();m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.errors||(gina.forms.errors={}),window.ginaToolbar.update('forms',{id:Na,errors:nb.error||{}}));ma(Pa,nb.error,nb.data,eb);Zb(Pa,La)}))}});hb[eb][Qa](db[eb][Qa]);continue}else hb[eb][Qa](db[eb][Qa]);delete Lb[eb]}catch(N){if(Qa=='conditions')throw Error('[ ginaFormValidator ] could not evaluate `'+eb+'->'+Qa+
563
+ '()` where `conditions` must be a `collection` (Array)\nStack:\n'+N);throw Error('[ ginaFormValidator ] could not evaluate `'+eb+'->'+Qa+'()`\nStack:\n'+N);}},hb=null,ab={},Ob=!1;D?/^form$/i.test(a.tagName)?(J=a.getAttribute('id'),e='validated.'+J,n.$forms[J].fields=b,typeof a.eventData!='undefined'&&typeof a.eventData.error!='undefined'&&delete a.eventData.error,hb=new l(b,c,v)):(Ob=!0,J=a.form.getAttribute('id')||a.form.target.getAttribute('id'),e='validated.'+J,n.$forms[J].fields=b,hb=new l(b,
564
+ c,v,n.$forms[J].fieldsSet)):hb=new l(b,null,v,void 0,z);var Qb=null,Rb=null;Ob?(z=a.form.getAttribute('id'),Ob=bc(n.$forms[z].target,n.$forms[z].rules,!1),Qb=Ec(JSON.stringify(n.$forms[z].rules),JSON.clone(Ob.fields)),Rb=Ob.$fields):(Qb=JSON.clone(b),Rb=c);z=typeof h!='undefined'?JSON.clone(h):{};var Nb=function(eb,db,Lb,fb,kb,Fa,Qa,Db){var xb=null;if(typeof Fa!='undefined')for(var bb in fb){var tb=kb&&typeof kb[bb]!='undefined'?kb[bb].getAttribute('type'):null;if(D&&typeof kb[bb]=='undefined')console.warn('field `'+
565
+ bb+'` found for your form rule ('+eb.id+'), but not found in $field collection.\nPlease, check your HTML or remove `'+bb+'` declaration from your rule if this is a mistake.');else{D&&kb[bb].getAttribute('data-gina-form-element-group')&&typeof Fa[bb]!='undefined'&&typeof Fa[bb].exclude!='undefined'&&Fa[bb].exclude&&!kb[bb].disabled&&(Fa[bb].exclude=!1);var p=typeof Fa['_case_'+bb]!='undefined'?!0:!1;if(D&&kb[bb].tagName.toLowerCase()=='input'&&/^(checkbox)$/i.test(tb))if(!kb[bb].checked&&typeof Fa[bb]!=
566
+ 'undefined'&&typeof Fa[bb].isRequired!='undefined'&&/^(false)$/i.test(Fa[bb].isRequired)||kb[bb].disabled)Fa[bb]={exclude:!0};else{if(!kb[bb].checked&&typeof Fa[bb]=='undefined')continue}else D&&kb[bb].tagName.toLowerCase()=='input'&&/^(radio)$/i.test(tb)&&console.debug('Radio: ',kb[bb].id,kb[bb].checked,kb[bb].value);for(var N in Fa)if(/^_case_/.test(N)&&typeof Fa[N].conditions!='undefined'&&(!Array.isArray(Fa[N].conditions)||Fa[N].conditions.length)&&typeof Fa[N].conditions[0].rules!='undefined'&&
567
+ typeof Fa[N].conditions!='undefined'&&Array.isArray(Fa[N].conditions))if(xb=N.replace('_case_',''),typeof Rb[xb]=='undefined')console.warn('Found case `'+N+'` but field `'+xb+'` is misssing in the dom.\n You should add `'+xb+'` element to your form in order to allow Validator to process this case.');else{typeof db[xb]=='undefined'&&(db[xb]=Rb[xb].value);tb=db[xb];D&&(tb=='true'?tb=!0:tb=='false'&&(tb=!1));for(var ea=0,sa=Fa[N].conditions.length;ea<sa;++ea)if(!(Array.isArray(Fa[N].conditions[ea].case)&&
568
+ Fa[N].conditions[ea].case.indexOf(tb)==-1||!Array.isArray(Fa[N].conditions[ea].case)&&Fa[N].conditions[ea].case!=tb))for(var Aa in Fa[N].conditions[ea].rules)if(!/^_comment$/i.test(Aa)&&Aa!=xb&&kb[Aa])if(bb==Aa||/^\//.test(Aa)||typeof fb[Aa]!='undefined'||typeof db[Aa]=='undefined')if(/^\//.test(Aa)){if(Wa=Aa.match(/\/(.*)\//).pop(),Ja=Aa.replace('/'+Wa+'/',''),Wa=Wa.replace(/\[/g,'\\[').replace(/\]/g,'\\]'),Wa=new RegExp(Wa,Ja),Wa.test(bb)){if(Fa[N].conditions[ea].case==tb||/^\//.test(Fa[N].conditions[ea].case)&&
569
+ (new RegExp(Fa[N].conditions[ea].case)).test(tb))Pa=typeof Fa[Aa]!='undefined'?Fa[Aa]:{},Fa[Aa]=A(Fa[N].conditions[ea].rules[Aa],Pa);xb!=Aa&&typeof Fa[Aa]!='undefined'&&yb(Aa,Fa,fb)}}else typeof Fa[N].conditions[ea].rules[Aa]!='undefined'&&(caseField=Aa,tb=fb[caseField],typeof kb[caseField]=='undefined'?console.warn('ignoring case `'+caseField+'`: field `NaN'):(D&&/^(true|false)$/i.test(tb)&&typeof Fa[caseField]!='undefined'&&typeof Fa[caseField].isBoolean!='undefined'&&/^(true)$/i.test(Fa[caseField].isBoolean)&&
570
+ (tb=/^(true)$/i.test(tb)?!0:!1),typeof Fa[N].conditions[ea].rules[Aa]!='undefined'&&(Pa=typeof Fa[N].conditions[ea].rules[Aa]!='undefined'?Fa[N].conditions[ea].rules[Aa]:{},Fa[Aa]=Pa),xb!=Aa&&typeof Fa[Aa]!='undefined'&&typeof fb[Aa]!='undefined'&&yb(Aa,Fa,fb)));else{fb[Aa]=db[Aa];var Pa=typeof Fa[Aa]!='undefined'?Fa[Aa]:{};Fa[Aa]=A(Fa[N].conditions[ea].rules[Aa],Pa);yb(Aa,Fa,fb)}}if(xb==bb)typeof Fa[bb]!='undefined'&&(p=db[bb],yb(bb,Fa,db),typeof db[bb]=='undefined'&&typeof p!='undefined'&&(db[bb]=
571
+ p));else if(tb=db[bb],typeof Fa[bb]!='undefined'&&yb(bb,Fa,db),!p&&typeof Lb['_case_'+bb]=='undefined'||typeof tb=='undefined'||typeof db[bb]!='undefined'||(db[bb]=tb),p){++Db;p=Fa['_case_'+bb].conditions;if(!p)throw Error('[ ginaFormValidator ] case `_case_'+bb+'` found without `condition(s)` !\nPlease, check your delcaration for `_case_'+bb+'`');for(let nb=0,Gb=p.length;nb<Gb;++nb)if(tb=db[bb],D&&(fb[bb]=='true'?tb=!0:fb[bb]=='false'&&(tb=!1)),p[nb]['case']===tb||Array.isArray(p[nb]['case'])&&p[nb]['case'].indexOf(tb)>
572
+ -1||/^\//.test(p[nb]['case'])){Pa={};if(typeof p[nb].rules[bb]=='undefined'&&typeof db[bb]=='undefined'||kb[bb].disabled)p[nb].rules[bb]={exclude:!0};for(var Na in p[nb].rules)if(!/^_comment$/i.test(Na))if(/^\//.test(Na)){Wa=Na.match(/\/(.*)\//).pop();Ja=Na.replace('/'+Wa+'/','');Wa=Wa.replace(/\[/g,'\\[').replace(/\]/g,'\\]');Wa=new RegExp(Wa,Ja);for(var La in kb)Wa.test(La)&&(/^\//.test(p[nb]['case'])?(Wa=p[nb]['case'].match(/\/(.*)\//).pop(),Ja=p[nb]['case'].replace('/'+Wa+'/',''),Wa=new RegExp(Wa,
573
+ Ja),Wa.test(tb)&&(Pa[La]=p[nb].rules[Na])):Pa[La]=p[nb].rules[Na],typeof fb[La]=='undefined'&&typeof kb[La]!='undefined'&&typeof kb[La].value!='undefined'&&(fb[La]=kb[La].value,D&&/(true|false)/i.test(fb[La])&&(fb[La]=='true'?fb[La]=!0:fb[La]=='false'&&(fb[La]=!1)),hb.addField(La,fb[La]),typeof Lb[La]!='undefined'&&(Pa[La]=A(Pa[La],Lb[La]))))}else/^\//.test(p[nb]['case'])?(Wa=p[nb]['case'].match(/\/(.*)\//).pop(),Ja=p[nb]['case'].replace('/'+Wa+'/',''),Wa=Wa.replace(/\[/g,'\\[').replace(/\]/g,'\\]'),
574
+ Wa=new RegExp(Wa,Ja),Wa.test(tb)&&(Pa[Na]=p[nb].rules[Na])):Pa[Na]=p[nb].rules[Na],typeof fb[Na]=='undefined'&&typeof kb[Na]!='undefined'&&typeof kb[Na].value!='undefined'&&(fb[Na]=kb[Na].value,D&&/(true|false)/i.test(fb[Na])&&(fb[Na]=='true'?fb[Na]=!0:fb[Na]=='false'&&(fb[Na]=!1)),hb.addField(Na,fb[Na]),typeof Lb[Na]!='undefined'&&(Pa[Na]=A(Pa[Na],Lb[Na])));++oa;if(D)Nb(eb,db,Lb,fb,kb,Pa,Qa,Db);else return Nb(eb,db,Lb,fb,kb,Pa,Qa,Db)}--Db}}}--oa;if(Db<=0&&oa<0){db=hb.getErrors();for(bb in db){for(rule in db[bb])ab[bb]||
575
+ (ab[bb]=''),ab[bb].indexOf(rule)<0&&(ab[bb]+=rule+' ');D&&kb[bb].setAttribute('data-gina-form-errors',ab[bb].substring(0,ab[bb].length-1))}try{I=Sb(hb.toData()),m&&D&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&(gina.forms.validated||(gina.forms.validated={}),gina.forms.validated[J]||(gina.forms.validated[J]={}),window.ginaToolbar.update('forms',{id:J,validated:I}))}catch(nb){throw nb;}Ca=!0;if(!R&&Sa<=0)if(typeof Qa!='undefined'&&typeof Qa==='function')Qa._errors=hb.getErrors(),Qa._data=
576
+ hb.toData(),triggerEvent(gina,eb,'validated.'+J,Qa);else return R=!0,{isValid:hb.isValid,error:db,data:I}}};D&&typeof u==='function'&&addListener(gina,a,e,function Lb(db){db.preventDefault();if(db.detail===u&&(db.currentTarget.removeEventListener(db.type,Lb,!1),!R)){R=!0;Ca=!1;Sa=0;var fb=db.detail,kb=fb._data||hb.toData(),Fa=fb._errors||hb.getErrors()||null;console.debug('instance errors: ',n.$forms[J].errors,' VS cbErrors: ',Fa,hb.isValid(),' VS d.getErrors(): ',hb.getErrors());Fa.count()>0&&hb.isValid()&&
577
+ (hb.isValid=function(){return!1});fb({isValid:hb.isValid,error:Fa,data:Sb(kb)});removeListener(gina,db.target,'validated.'+db.target.id)}});if(D)Nb(a,Qb,z,b,c,h,u,0);else return Nb(a,Qb,z,b,c,h,u,0)},Fc=function(a,b){if(!a||typeof a!='object')return n;b||=typeof gina!='undefined'&&gina.config&&gina.config.culture?gina.config.culture:'en';n._errorLabelsByCulture||(n._errorLabelsByCulture={});n._errorLabelsByCulture[b]=A(JSON.clone(a),n._errorLabelsByCulture[b]||{});return n};return D?Wb(f):X(f,q,F,
578
578
  H)}typeof module!=='undefined'&&module.exports?module.exports=ValidatorPlugin:typeof define==='function'&&define.amd&&define('gina/validator','utils/events utils/dom utils/effects utils/data lib/form-validator lib/routing lib/loading-state'.split(' '),function(){return ValidatorPlugin});
579
- define('gina/popin',['require','lib/domain','lib/loading-state','lib/merge','utils/events'],function(f){function q(Z){return(Z||'gp')+'-'+ ++m}function F(Z){l[Z]||(l[Z]=!0,typeof console!='undefined'&&typeof console.warn=='function'&&console.warn('[gina/popin] `'+Z+'` is deprecated; use `'+(Z==='data-gina-popin-name'?'data-gina-dialog':'data-gina-dialog-src')+'` instead. The legacy attribute still works (mapped onto the new dialog path).'))}var H=f('lib/domain'),N=null,U=f('lib/loading-state'),D=
580
- f('lib/merge');f('utils/events');var m=0,E={},A={},aa={},l={},W=!1,r=!1,n=!1;return function(Z){function T(){var k=gina.popin.$popins,w=gina.popin.activePopinId;if(w&&k[w]&&k[w].isOpen)return k[w];for(var G in k)if(typeof k[G].isOpen!='undefined'&&k[G].isOpen)return k[G];return null}function Y(k){var w=gina.popin.$popins,G=null,ia=null,ca;if(!k||typeof k.nodeType=='undefined')return null;for(var ta in w)(ca=w[ta].id?document.getElementById(w[ta].id):null)&&ca.contains(k)&&(!G||ia.contains(ca))&&(G=
581
- w[ta],ia=ca);return G}function v(k){var w=!1,G=k.getAttribute('data-gina-dialog'),ia=k.getAttribute('data-gina-dialog-src');G==null&&k.getAttribute('data-gina-popin-name')!=null&&(w=!0,G=k.getAttribute('data-gina-popin-name'),F('data-gina-popin-name'));ia==null&&k.getAttribute('data-gina-popin-url')!=null&&(w=!0,ia=k.getAttribute('data-gina-popin-url'),F('data-gina-popin-url'));if(ia==null&&/^A$/i.test(k.tagName)){var ca=k.getAttribute('href');ca&&ca!=''&&ca!='#'&&!/^#/.test(ca)&&(ia=ca)}ca=w;w||
582
- k.getAttribute('data-gina-popin-name')!=null?w=!0:(w=k.getAttribute('data-gina-dialog-modal'),w=w!=null?w==='false'?!1:!0:gb.options.modal===!0||gb.options.modal===!1?gb.options.modal:typeof gina!='undefined'&&gina.config&&gina.config.popin&&(gina.config.popin.modal===!0||gina.config.popin.modal===!1)?gina.config.popin.modal:!1);return{id:G,src:ia,isLegacy:ca,modal:w,partialTarget:k.getAttribute('data-gina-dialog-target'),isLink:/^true$/i.test(k.getAttribute('data-gina-popin-is-link')),formSubmit:/^true$/i.test(k.getAttribute('data-gina-form-submit'))}}
579
+ define('gina/popin',['require','lib/domain','lib/loading-state','lib/merge','utils/events'],function(f){function q(Z){return(Z||'gp')+'-'+ ++m}function F(Z){l[Z]||(l[Z]=!0,typeof console!='undefined'&&typeof console.warn=='function'&&console.warn('[gina/popin] `'+Z+'` is deprecated; use `'+(Z==='data-gina-popin-name'?'data-gina-dialog':'data-gina-dialog-src')+'` instead. The legacy attribute still works (mapped onto the new dialog path).'))}var H=f('lib/domain'),M=null,V=f('lib/loading-state'),D=
580
+ f('lib/merge');f('utils/events');var m=0,E={},A={},aa={},l={},W=!1,r=!1,n=!1;return function(Z){function U(){var k=gina.popin.$popins,w=gina.popin.activePopinId;if(w&&k[w]&&k[w].isOpen)return k[w];for(var G in k)if(typeof k[G].isOpen!='undefined'&&k[G].isOpen)return k[G];return null}function Y(k){var w=gina.popin.$popins,G=null,ha=null,ca;if(!k||typeof k.nodeType=='undefined')return null;for(var ta in w)(ca=w[ta].id?document.getElementById(w[ta].id):null)&&ca.contains(k)&&(!G||ha.contains(ca))&&(G=
581
+ w[ta],ha=ca);return G}function v(k){var w=!1,G=k.getAttribute('data-gina-dialog'),ha=k.getAttribute('data-gina-dialog-src');G==null&&k.getAttribute('data-gina-popin-name')!=null&&(w=!0,G=k.getAttribute('data-gina-popin-name'),F('data-gina-popin-name'));ha==null&&k.getAttribute('data-gina-popin-url')!=null&&(w=!0,ha=k.getAttribute('data-gina-popin-url'),F('data-gina-popin-url'));if(ha==null&&/^A$/i.test(k.tagName)){var ca=k.getAttribute('href');ca&&ca!=''&&ca!='#'&&!/^#/.test(ca)&&(ha=ca)}ca=w;w||
582
+ k.getAttribute('data-gina-popin-name')!=null?w=!0:(w=k.getAttribute('data-gina-dialog-modal'),w=w!=null?w==='false'?!1:!0:gb.options.modal===!0||gb.options.modal===!1?gb.options.modal:typeof gina!='undefined'&&gina.config&&gina.config.popin&&(gina.config.popin.modal===!0||gina.config.popin.modal===!1)?gina.config.popin.modal:!1);return{id:G,src:ha,isLegacy:ca,modal:w,partialTarget:k.getAttribute('data-gina-dialog-target'),isLink:/^true$/i.test(k.getAttribute('data-gina-popin-is-link')),formSubmit:/^true$/i.test(k.getAttribute('data-gina-form-submit'))}}
583
583
  function L(k,w){k&&w&&(k.setAttribute('aria-haspopup','dialog'),k.setAttribute('aria-controls',w))}function y(k){if(k&&typeof k.querySelector=='function'){var w=k.querySelector('[id$="-title"]')||k.querySelector('h1, h2, h3, h4, h5, h6');w&&(w.id||(w.id=(k.id||'gina-popin')+'-title',w.setAttribute('id',w.id)),k.setAttribute('aria-labelledby',w.id))}}function x(k){if(k&&typeof k.querySelector=='function'){var w=k.querySelector('[autofocus]')||k.querySelector('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');
584
- w&&typeof w.focus=='function'?w.focus():typeof k.focus=='function'&&(k.getAttribute('tabindex')==null&&k.setAttribute('tabindex','-1'),k.focus())}}function R(k,w){if(w){document.body.setAttribute('data-gina-popin-scroll-lock','true');var G=function(va){if(va.key==='Escape'||va.keyCode===27)va.preventDefault(),ob(k.name)};w.__ginaOnKeydown=G;w.addEventListener('keydown',G);G=document.body.children;for(var ia=0,ca=G.length;ia<ca;++ia)if(G[ia]===Ia.target)for(var ta=G[ia].querySelectorAll('dialog[open]'),
585
- B=0,la=ta.length;B<la;++B)ta[B]===w||ta[B].contains(w)||ta[B].getAttribute('inert')!=null||(ta[B].setAttribute('inert',''),ta[B].setAttribute('data-gina-popin-inert','true'));else G[ia]===w||G[ia].contains(w)||G[ia].getAttribute('inert')!=null||(G[ia].setAttribute('inert',''),G[ia].setAttribute('data-gina-popin-inert','true'))}}function X(k,w,G,ia){if(typeof gina!='undefined'&&gina&&gina.config&&gina.config.envIsDev&&typeof console!='undefined'&&typeof console.warn=='function'){k=k&&k.name?k.name:
586
- '(unknown)';G=G==='invalid'?'is not a valid selector ('+(ia&&ia.message?ia.message:String(ia))+') \u2014 the whole dialog was replaced instead':G==='noSlot'?'matched nothing in the open dialog \u2014 the whole dialog was replaced instead':'matched nothing in the answer \u2014 the whole answer went into the slot';try{console.warn('[gina/popin] popin `'+k+'`: `data-gina-dialog-target="'+w+'"` '+G+'.')}catch(ca){}}}function g(k,w,G){G=G||fa(w);a:{var ia=G,ca=w.partialTarget;if(ca){var ta=null;try{ta=
587
- ia.querySelector(ca)}catch(B){X(w,ca,'invalid',B);ia.innerHTML=typeof k=='string'?k.trim():'';break a}ta?(k=(new DOMParser).parseFromString(k,'text/html'),ia=k.querySelector(ca),ia||(X(w,ca,'noRegion'),ia=k.body),ta.innerHTML=ia.innerHTML):(X(w,ca,'noSlot'),ia.innerHTML=typeof k=='string'?k.trim():'')}else ia.innerHTML=typeof k=='string'?k.trim():''}Cb(w.name,!0);ka({target:G,type:'loaded.'+w.id},w);w.isOpen||qb(w.name);y(G);x(G)}function V(k,w){var G=function(){typeof w=='function'&&w()};if(/^(http|https):/.test(k)&&
588
- !(new RegExp('^'+window.location.protocol+'//'+window.location.host)).test(k))delete E[k],G();else{var ia=new XMLHttpRequest;ia.open('GET',k);ia.withCredentials=!1;ia.setRequestHeader('X-Requested-With','XMLHttpRequest');ia.onreadystatechange=function(){if(ia.readyState==4){var ca=A[k]||[];delete A[k];var ta=ia.getResponseHeader('Content-Type');if(/^2/.test(ia.status)&&!/application\/json/.test(ta||''))for(E[k]=ia.responseText,ta=0;ta<ca.length;++ta)ca[ta](ia.responseText);else for(delete E[k],ta=
589
- 0;ta<ca.length;++ta)ca[ta](null);G()}};ia.send()}}function fa(k){var w=document.getElementById(k.id);if(w!=null)return w;var G=k.options.class+' '+k.id;gb.options.useDialogMode?(w=document.createElement('dialog'),w.setAttribute('id',k.id),w.setAttribute('class',G),w.setAttribute('data-type','modal'),w.setAttribute('aria-labelledby',k.name),(k=document.getElementById('gina-popins-overlay'))?k.appendChild(w):Ia.target.appendChild(w)):(w=document.createElement('div'),w.setAttribute('id',k.id),w.setAttribute('class',
590
- G),Ia.target.firstChild.appendChild(w));return w}function ua(k,w,G,ia){var ca=function(){typeof ia=='function'&&ia()},ta=E[k];if(typeof ta=='undefined')return!1;if(ta===null){var B=w?w._loadSeq=(w._loadSeq||0)+1:null;w&&w.options&&w.options.preOpen&&Da(w,fa(w));typeof A[k]=='undefined'&&(A[k]=[]);A[k].push(function(va){ca();if(B===null||B===w._loadSeq)va==null?typeof G=='function'&&G():(w._contentUrl=k,GINA_ENV_IS_DEV&&Ea(va),g(va,w,fa(w)))});return!0}delete E[k];w._contentUrl=k;var la=fa(w);GINA_ENV_IS_DEV&&
591
- Ea(ta);g(ta,w,la);ca();return!0}function qa(k){var w=k._contentUrl;w&&(k._contentUrl=null,K(w))}function K(k){var w=E[k];typeof w!='undefined'&&(w===null?(typeof A[k]=='undefined'&&(A[k]=[]),A[k].push(function(){delete E[k]})):delete E[k])}function ha(){if(!r){r=!0;var k=function(w){(w=w.target&&typeof w.target.closest=='function'?w.target.closest('[data-gina-dialog-src],[data-gina-popin-url]'):null)&&oa(w)};document.addEventListener('mouseover',k);document.addEventListener('focusin',k)}}function oa(k,
592
- w){var G=function(){typeof w=='function'&&w()};k.getAttribute('disabled')!=null&&k.getAttribute('disabled')!='false'||k.getAttribute('aria-disabled')=='true'?G():/^false$/i.test(k.getAttribute('data-gina-dialog-preload'))?G():(k=k.getAttribute('data-gina-dialog-src')||k.getAttribute('data-gina-popin-url'))&&typeof E[k]=='undefined'?(E[k]=null,V(k,w)):G()}function Ja(){if(!n&&(n=!0,typeof navigator=='undefined'||!navigator.connection||!navigator.connection.saveData)){var k=function(){for(var G=document.querySelectorAll('[data-gina-dialog-src],[data-gina-popin-url]'),
593
- ia=[],ca=0,ta=G.length;ca<ta;++ca)/^eager$/i.test(G[ca].getAttribute('data-gina-dialog-preload'))&&ia.push(G[ca]);var B=function(){var la=ia.shift();la&&oa(la,B)};B()},w=function(){typeof window.requestIdleCallback=='function'?window.requestIdleCallback(k):setTimeout(k,1500)};document.readyState=='complete'?w():window.addEventListener('load',w,{once:!0})}}function O(k,w){var G=k.id,ia=document.getElementById(G);if(!ia)throw Error('Popin dialog `'+G+'` not found in the DOM !');var ca=ma(G);ca||(ca=
594
- D({},Gb),ca.id=G,ca.name=G,ca.target=ia,ca.options=D({},gb.options),ca.load=La,ca.loadContent=ab,ca.open=qb,ca.close=ob,ca.isInPageDialog=!0,Ia.$popins[G]=ca);ca.modal=k.modal;ca.openTrigger=w?w.id||w.getAttribute('id'):null;L(w,G);y(ia);gina.popinIsBinded||ka({target:ia,type:'open.'+G},ca);ia.classList.add('gina-popin-is-active');ia.getAttribute('open')||(k.modal&&typeof ia.showModal==='function'?ia.showModal():typeof ia.show==='function'?(ia.show(),R(ca,ia)):ia.setAttribute('open',!0));ca.isOpen=
595
- !0;P(ca.id);x(ia);triggerEvent(gina,Ia.target,'open.'+G,ca)}function S(k){if(('disabled'in k||k.getAttribute('disabled')==null||k.getAttribute('disabled')=='false')&&k.getAttribute('aria-disabled')!='true'){var w=v(k);if(w.id||w.src){var G=k.id||k.getAttribute('id');G||(G='gina-dialog-trigger-'+q(),k.setAttribute('id',G));L(k,w.id||w.src);if(w.src){var ia=w.id||'gina-dialog-'+q(),ca=Aa(ia);if(!ca){var ta=D({},Gb);Mb(ta,D({name:ia},gb.options));ca=Aa(ia)}ca.openTrigger=G;ca.modal=w.modal;ca.partialTarget=
596
- w.partialTarget||null;G='loaded.'+ca.id;typeof gina.events[G]=='undefined'&&addListener(gina,ca.target,G,function(ra){ra.preventDefault();typeof ra.detail=='string'&&g(ra.detail,ca,fa(ca))});var B=D({isSynchrone:!1,withCredentials:!1},ca.options);G=function(){La(ia,w.src,B)};var la=!0,va=!1;!/^false$/i.test(k.getAttribute('data-gina-dialog-preload'))&&ua(w.src,ca,G,function(){la=!1;va&&(va=!1,Ga(k))})?la&&(ba(k),va=!0):G()}else O(w,k)}}}function ya(){W||(W=!0,addListener(gina,document,'click',function(k){var w=
597
- k.target&&typeof k.target.closest=='function'?k.target.closest('[data-gina-dialog],[data-gina-dialog-src],[data-gina-popin-name]'):null;!w||w.getAttribute('data-gina-dialog')==null&&w.getAttribute('data-gina-dialog-src')==null||(cancelEvent(k),S(w))}))}function ka(k,w){var G=k.target,ia=k.type;typeof k.detail!='undefined'&&typeof k.detail.trim=='function'&&(G.innerHTML=k.detail.trim());k=function(tb,Tb,Ab){var Wb=Ab.getAttribute('data-gina-popin-is-link');Wb=/^true$/i.test(Wb)?!0:!1;tb!='link'||Wb||
598
- (tb='action');addListener(gina,Ab,Tb,function(yb){cancelEvent(yb);if(tb!='close'){var wb=!1,Sb='loaded.'+w.id;typeof gina.events[Sb]=='undefined'&&addListener(gina,G,Sb,function(jc){jc.preventDefault();wb||(wb=!0,ab.call(w,jc.detail))});Sb={isSynchrone:!1,withCredentials:!1};Sb=D(w.options,Sb);La(w.name,Ab.href,Sb)}removeListener(gina,yb.target,yb.type)});addListener(gina,Ab,'click',function(yb){cancelEvent(yb);if(!('disabled'in yb.target)&&yb.target.getAttribute('disabled')!=null&&yb.target.getAttribute('disabled')!=
599
- 'false')return!1;if(tb=='link'){var wb=yb.target.getAttribute('href')||null,Sb=yb.target.getAttribute('target');Sb!=null&&Sb!=''?window.open(wb,Sb):triggerEvent(gina,yb.target,yb.currentTarget.id,w)}else wb=/^popin\.click\./.test(yb.currentTarget.id),wb||(cancelEvent(yb),w.isRedirecting=!1,ob(w.name)),wb&&(cancelEvent(yb),wb=yb.target.id,xa.test(wb)&&triggerEvent(gina,yb.target,wb,yb.detail))})};gina.popinIsBinded=!0;var ca=null,ta=null,B=null;!w.isOpen&&gb.options.cancelOnOverlayClick&&(ca=w.target,
600
- gb.options.useDialogMode||(ca=Ia.target.childNodes[0]),addListener(gina,ca,'mousedown',function(tb){if(/gina-popin-is-active/.test(tb.target.className)){removeListener(gina,tb.target,'mousedown');tb=Array.prototype.slice.call(G.querySelectorAll('.gina-popin-close'));ta=0;for(B=tb.length;ta<B;++ta){let Tb=tb[ta],Ab=Tb.getAttribute('id');for(let Wb=0,yb=pb.length;Wb<yb;Wb++){let wb=pb[Wb];typeof gina.events[wb]!='undefined'&&gina.events[wb]==Ab&&removeListener(gina,Tb,wb);typeof gina.events[Ab]!='undefined'&&
601
- gina.events[Ab]==Ab&&removeListener(gina,Tb,Ab);typeof gina.events[wb+'.'+Ab]!='undefined'&&gina.events[wb+'.'+Ab]==Ab&&removeListener(gina,Tb,wb+'.'+Ab);typeof gina.events[wb+'.'+Ab]!='undefined'&&gina.events[wb+'.'+Ab]==wb+'.'+Ab&&removeListener(gina,Tb,wb+'.'+Ab)}}w.isRedirecting=!1;ob(w.name)}}));/<form/i.test(G.innerHTML)&&typeof Jb!='undefined'&&Jb&&(w.hasForm=!0);ca=Array.prototype.slice.call(G.querySelectorAll('.gina-popin-close'));var la=[],va=G.getElementsByTagName('a');ta=0;B=va.length;
602
- if(B>0)for(;ta<B;++ta)va[ta].classList.contains('gina-popin-close')||(typeof va[ta]=='undefined'||/(#|#.*)$/.test(va[ta].href)||va[ta].id)&&(typeof va[ta]=='undefined'||/(#|#.*)$/.test(va[ta].href)||/^(click\.|popin\.link)/.test(va[ta].id))||la.push(va[ta]);va=null;ta=0;for(B=ca.length;ta<B;++ta)ca[ta].id?va=ca[ta].id:(va='popin.close.'+q(),ca[ta].id=va,ca[ta].setAttribute('id',va)),typeof gina.events[va]!='undefined'&&gina.events[va]==ca[ta].id||k('close',va,ca[ta]);ca=0;B=la.length;var ra=null,
603
- sa=null,Ta=null,$a={},Oa=null,lb=new DOMParser,nb=null,vb=null,zb=va=null;for(zb=null;ca<B;++ca)la[ca].getAttribute('disabled')==null&&(la[ca].id=/^null$/i.test(la[ca].getAttribute('id'))?null:la[ca].getAttribute('id'),la[ca].id&&/^popin\.link/.test(la[ca].id)&&/^popin\.click/.test(la[ca].id)?va=la[ca].id:(zb=!0,va=la[ca].getAttribute('href'),va&&va!=''&&va!='#'||(va!='#'&&la[ca].setAttribute('href','#'),zb=!1),/^null$/i.test(la[ca].id)?zb?(va='popin.link.'+q(),la[ca].setAttribute('data-gina-popin-is-link',
604
- !0)):(va='popin.click.'+q(),la[ca].setAttribute('data-gina-popin-is-link',!1)):va=la[ca].id,la[ca].id=va,la[ca].setAttribute('id',va)),zb=(zb=la[ca].getAttribute('data-gina-form-submit'))&&/^true$/i.test(zb)?!0:!1,zb||(/^(null|\s*)$/.test(la[ca].getAttribute('href'))||addListener(gina,la[ca],'click',function(tb){tb.preventDefault();w.isRedirecting=!0;if(w.hasForm){ra=w.target.getElementsByTagName('FORM');sa=0;for(Ta=ra.length;sa<Ta;++sa)if(nb=tb.currentTarget.id,vb=lb.parseFromString(ra.item(sa).innerHTML,
605
- 'text/html').getElementById(nb)||!1)Oa=ra[sa].getAttribute('data-gina-form-inherits-data')||null,$a=D($a,JSON.parse(decodeURIComponent(Oa)));$a.count()>0&&(/\?/.test(tb.currentTarget.href)?tb.currentTarget.href+='&inheritedData='+encodeRFC5987ValueChars(JSON.stringify($a)):tb.currentTarget.href+='?inheritedData='+encodeRFC5987ValueChars(JSON.stringify($a)))}}),typeof gina.events[va]!='undefined'&&gina.events[va]==la[ca].id||k('link',va,la[ca])));if(w.hasForm)for(k=null,la=G.getElementsByTagName('form'),
606
- ca=0,B=la.length;ca<B;++ca)k=la[ca].getAttribute('id')||'form.'+q(),la[ca].setAttribute('id',k),la[ca].id=k,w.$forms.indexOf(k)<0&&w.$forms.push(k),la[ca].close=ob,Jb.isPopinContext=!0,Jb.validateFormById(la[ca].getAttribute('id')),removeListener(gina,w.target,ia)}function Ea(k,w){var G=T();if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&typeof k!='undefined'&&typeof w!='undefined'&&k){G=k;try{var ia=null;!w&&G.error&&/^(\{|\[)/.test(G.error)&&(G.error=JSON.parse(G.error));if(typeof G.error!=
607
- 'undefined'&&typeof G.error=='object'&&typeof G.error=='object'){ia={status:G.status};for(xErr in G.error)/^error$/.test(xErr)||(ia[xErr]=G.error[xErr]);ia.error=G.error.error;G=ia}else typeof G.error!='undefined'&&typeof G.error=='string'&&(G=k);G.isXHRViewData=!0;ginaToolbar.update('data-xhr',G);return}catch(ca){throw ca;}}try{G=ma(typeof gina.popin!='undefined'&&gina.popin?gina.popin.activePopinId:Ia.activePopinId)}catch(ca){G&&ginaToolbar.update('data-xhr',ca)}G||(new DOMParser).parseFromString(k,
584
+ w&&typeof w.focus=='function'?w.focus():typeof k.focus=='function'&&(k.getAttribute('tabindex')==null&&k.setAttribute('tabindex','-1'),k.focus())}}function S(k,w){if(w){document.body.setAttribute('data-gina-popin-scroll-lock','true');var G=function(va){if(va.key==='Escape'||va.keyCode===27)va.preventDefault(),qb(k.name)};w.__ginaOnKeydown=G;w.addEventListener('keydown',G);G=document.body.children;for(var ha=0,ca=G.length;ha<ca;++ha)if(G[ha]===Ha.target)for(var ta=G[ha].querySelectorAll('dialog[open]'),
585
+ B=0,la=ta.length;B<la;++B)ta[B]===w||ta[B].contains(w)||ta[B].getAttribute('inert')!=null||(ta[B].setAttribute('inert',''),ta[B].setAttribute('data-gina-popin-inert','true'));else G[ha]===w||G[ha].contains(w)||G[ha].getAttribute('inert')!=null||(G[ha].setAttribute('inert',''),G[ha].setAttribute('data-gina-popin-inert','true'))}}function X(k,w,G,ha){if(typeof gina!='undefined'&&gina&&gina.config&&gina.config.envIsDev&&typeof console!='undefined'&&typeof console.warn=='function'){k=k&&k.name?k.name:
586
+ '(unknown)';G=G==='invalid'?'is not a valid selector ('+(ha&&ha.message?ha.message:String(ha))+') \u2014 the whole dialog was replaced instead':G==='noSlot'?'matched nothing in the open dialog \u2014 the whole dialog was replaced instead':'matched nothing in the answer \u2014 the whole answer went into the slot';try{console.warn('[gina/popin] popin `'+k+'`: `data-gina-dialog-target="'+w+'"` '+G+'.')}catch(ca){}}}function g(k,w,G){G=G||ka(w);a:{var ha=G,ca=w.partialTarget;if(ca){var ta=null;try{ta=
587
+ ha.querySelector(ca)}catch(B){X(w,ca,'invalid',B);ha.innerHTML=typeof k=='string'?k.trim():'';break a}ta?(k=(new DOMParser).parseFromString(k,'text/html'),ha=k.querySelector(ca),ha||(X(w,ca,'noRegion'),ha=k.body),ta.innerHTML=ha.innerHTML):(X(w,ca,'noSlot'),ha.innerHTML=typeof k=='string'?k.trim():'')}else ha.innerHTML=typeof k=='string'?k.trim():''}Cb(w.name,!0);ja({target:G,type:'loaded.'+w.id},w);w.isOpen||sb(w.name);y(G);x(G)}function Q(k,w){var G=function(){typeof w=='function'&&w()};if(/^(http|https):/.test(k)&&
588
+ !(new RegExp('^'+window.location.protocol+'//'+window.location.host)).test(k))delete E[k],G();else{var ha=new XMLHttpRequest;ha.open('GET',k);ha.withCredentials=!1;ha.setRequestHeader('X-Requested-With','XMLHttpRequest');ha.onreadystatechange=function(){if(ha.readyState==4){var ca=A[k]||[];delete A[k];var ta=ha.getResponseHeader('Content-Type');if(/^2/.test(ha.status)&&!/application\/json/.test(ta||''))for(E[k]=ha.responseText,ta=0;ta<ca.length;++ta)ca[ta](ha.responseText);else for(delete E[k],ta=
589
+ 0;ta<ca.length;++ta)ca[ta](null);G()}};ha.send()}}function ka(k){var w=document.getElementById(k.id);if(w!=null)return w;var G=k.options.class+' '+k.id;gb.options.useDialogMode?(w=document.createElement('dialog'),w.setAttribute('id',k.id),w.setAttribute('class',G),w.setAttribute('data-type','modal'),w.setAttribute('aria-labelledby',k.name),(k=document.getElementById('gina-popins-overlay'))?k.appendChild(w):Ha.target.appendChild(w)):(w=document.createElement('div'),w.setAttribute('id',k.id),w.setAttribute('class',
590
+ G),Ha.target.firstChild.appendChild(w));return w}function ua(k,w,G,ha){var ca=function(){typeof ha=='function'&&ha()},ta=E[k];if(typeof ta=='undefined')return!1;if(ta===null){var B=w?w._loadSeq=(w._loadSeq||0)+1:null;w&&w.options&&w.options.preOpen&&Da(w,ka(w));typeof A[k]=='undefined'&&(A[k]=[]);A[k].push(function(va){ca();if(B===null||B===w._loadSeq)va==null?typeof G=='function'&&G():(w._contentUrl=k,GINA_ENV_IS_DEV&&Ea(va),g(va,w,ka(w)))});return!0}delete E[k];w._contentUrl=k;var la=ka(w);GINA_ENV_IS_DEV&&
591
+ Ea(ta);g(ta,w,la);ca();return!0}function pa(k){var w=k._contentUrl;w&&(k._contentUrl=null,K(w))}function K(k){var w=E[k];typeof w!='undefined'&&(w===null?(typeof A[k]=='undefined'&&(A[k]=[]),A[k].push(function(){delete E[k]})):delete E[k])}function fa(){if(!r){r=!0;var k=function(w){(w=w.target&&typeof w.target.closest=='function'?w.target.closest('[data-gina-dialog-src],[data-gina-popin-url]'):null)&&na(w)};document.addEventListener('mouseover',k);document.addEventListener('focusin',k)}}function na(k,
592
+ w){var G=function(){typeof w=='function'&&w()};k.getAttribute('disabled')!=null&&k.getAttribute('disabled')!='false'||k.getAttribute('aria-disabled')=='true'?G():/^false$/i.test(k.getAttribute('data-gina-dialog-preload'))?G():(k=k.getAttribute('data-gina-dialog-src')||k.getAttribute('data-gina-popin-url'))&&typeof E[k]=='undefined'?(E[k]=null,Q(k,w)):G()}function Ia(){if(!n&&(n=!0,typeof navigator=='undefined'||!navigator.connection||!navigator.connection.saveData)){var k=function(){for(var G=document.querySelectorAll('[data-gina-dialog-src],[data-gina-popin-url]'),
593
+ ha=[],ca=0,ta=G.length;ca<ta;++ca)/^eager$/i.test(G[ca].getAttribute('data-gina-dialog-preload'))&&ha.push(G[ca]);var B=function(){var la=ha.shift();la&&na(la,B)};B()},w=function(){typeof window.requestIdleCallback=='function'?window.requestIdleCallback(k):setTimeout(k,1500)};document.readyState=='complete'?w():window.addEventListener('load',w,{once:!0})}}function O(k,w){var G=k.id,ha=document.getElementById(G);if(!ha)throw Error('Popin dialog `'+G+'` not found in the DOM !');var ca=ma(G);ca||(ca=
594
+ D({},Fb),ca.id=G,ca.name=G,ca.target=ha,ca.options=D({},gb.options),ca.load=Ka,ca.loadContent=$a,ca.open=sb,ca.close=qb,ca.isInPageDialog=!0,Ha.$popins[G]=ca);ca.modal=k.modal;ca.openTrigger=w?w.id||w.getAttribute('id'):null;L(w,G);y(ha);gina.popinIsBinded||ja({target:ha,type:'open.'+G},ca);ha.classList.add('gina-popin-is-active');ha.getAttribute('open')||(k.modal&&typeof ha.showModal==='function'?ha.showModal():typeof ha.show==='function'?(ha.show(),S(ca,ha)):ha.setAttribute('open',!0));ca.isOpen=
595
+ !0;P(ca.id);x(ha);triggerEvent(gina,Ha.target,'open.'+G,ca)}function T(k){if(('disabled'in k||k.getAttribute('disabled')==null||k.getAttribute('disabled')=='false')&&k.getAttribute('aria-disabled')!='true'){var w=v(k);if(w.id||w.src){var G=k.id||k.getAttribute('id');G||(G='gina-dialog-trigger-'+q(),k.setAttribute('id',G));L(k,w.id||w.src);if(w.src){var ha=w.id||'gina-dialog-'+q(),ca=Ba(ha);if(!ca){var ta=D({},Fb);Mb(ta,D({name:ha},gb.options));ca=Ba(ha)}ca.openTrigger=G;ca.modal=w.modal;ca.partialTarget=
596
+ w.partialTarget||null;G='loaded.'+ca.id;typeof gina.events[G]=='undefined'&&addListener(gina,ca.target,G,function(qa){qa.preventDefault();typeof qa.detail=='string'&&g(qa.detail,ca,ka(ca))});var B=D({isSynchrone:!1,withCredentials:!1},ca.options);G=function(){Ka(ha,w.src,B)};var la=!0,va=!1;!/^false$/i.test(k.getAttribute('data-gina-dialog-preload'))&&ua(w.src,ca,G,function(){la=!1;va&&(va=!1,Ga(k))})?la&&(ba(k),va=!0):G()}else O(w,k)}}}function ya(){W||(W=!0,addListener(gina,document,'click',function(k){var w=
597
+ k.target&&typeof k.target.closest=='function'?k.target.closest('[data-gina-dialog],[data-gina-dialog-src],[data-gina-popin-name]'):null;!w||w.getAttribute('data-gina-dialog')==null&&w.getAttribute('data-gina-dialog-src')==null||(cancelEvent(k),T(w))}))}function ja(k,w){var G=k.target,ha=k.type;typeof k.detail!='undefined'&&typeof k.detail.trim=='function'&&(G.innerHTML=k.detail.trim());k=function(ub,Tb,Bb){var Wb=Bb.getAttribute('data-gina-popin-is-link');Wb=/^true$/i.test(Wb)?!0:!1;ub!='link'||Wb||
598
+ (ub='action');addListener(gina,Bb,Tb,function(zb){cancelEvent(zb);if(ub!='close'){var wb=!1,Sb='loaded.'+w.id;typeof gina.events[Sb]=='undefined'&&addListener(gina,G,Sb,function(jc){jc.preventDefault();wb||(wb=!0,$a.call(w,jc.detail))});Sb={isSynchrone:!1,withCredentials:!1};Sb=D(w.options,Sb);Ka(w.name,Bb.href,Sb)}removeListener(gina,zb.target,zb.type)});addListener(gina,Bb,'click',function(zb){cancelEvent(zb);if(!('disabled'in zb.target)&&zb.target.getAttribute('disabled')!=null&&zb.target.getAttribute('disabled')!=
599
+ 'false')return!1;if(ub=='link'){var wb=zb.target.getAttribute('href')||null,Sb=zb.target.getAttribute('target');Sb!=null&&Sb!=''?window.open(wb,Sb):triggerEvent(gina,zb.target,zb.currentTarget.id,w)}else wb=/^popin\.click\./.test(zb.currentTarget.id),wb||(cancelEvent(zb),w.isRedirecting=!1,qb(w.name)),wb&&(cancelEvent(zb),wb=zb.target.id,xa.test(wb)&&triggerEvent(gina,zb.target,wb,zb.detail))})};gina.popinIsBinded=!0;var ca=null,ta=null,B=null;!w.isOpen&&gb.options.cancelOnOverlayClick&&(ca=w.target,
600
+ gb.options.useDialogMode||(ca=Ha.target.childNodes[0]),addListener(gina,ca,'mousedown',function(ub){if(/gina-popin-is-active/.test(ub.target.className)){removeListener(gina,ub.target,'mousedown');ub=Array.prototype.slice.call(G.querySelectorAll('.gina-popin-close'));ta=0;for(B=ub.length;ta<B;++ta){let Tb=ub[ta],Bb=Tb.getAttribute('id');for(let Wb=0,zb=rb.length;Wb<zb;Wb++){let wb=rb[Wb];typeof gina.events[wb]!='undefined'&&gina.events[wb]==Bb&&removeListener(gina,Tb,wb);typeof gina.events[Bb]!='undefined'&&
601
+ gina.events[Bb]==Bb&&removeListener(gina,Tb,Bb);typeof gina.events[wb+'.'+Bb]!='undefined'&&gina.events[wb+'.'+Bb]==Bb&&removeListener(gina,Tb,wb+'.'+Bb);typeof gina.events[wb+'.'+Bb]!='undefined'&&gina.events[wb+'.'+Bb]==wb+'.'+Bb&&removeListener(gina,Tb,wb+'.'+Bb)}}w.isRedirecting=!1;qb(w.name)}}));/<form/i.test(G.innerHTML)&&typeof Ib!='undefined'&&Ib&&(w.hasForm=!0);ca=Array.prototype.slice.call(G.querySelectorAll('.gina-popin-close'));var la=[],va=G.getElementsByTagName('a');ta=0;B=va.length;
602
+ if(B>0)for(;ta<B;++ta)va[ta].classList.contains('gina-popin-close')||(typeof va[ta]=='undefined'||/(#|#.*)$/.test(va[ta].href)||va[ta].id)&&(typeof va[ta]=='undefined'||/(#|#.*)$/.test(va[ta].href)||/^(click\.|popin\.link)/.test(va[ta].id))||la.push(va[ta]);va=null;ta=0;for(B=ca.length;ta<B;++ta)ca[ta].id?va=ca[ta].id:(va='popin.close.'+q(),ca[ta].id=va,ca[ta].setAttribute('id',va)),typeof gina.events[va]!='undefined'&&gina.events[va]==ca[ta].id||k('close',va,ca[ta]);ca=0;B=la.length;var qa=null,
603
+ ra=null,Ta=null,Za={},Oa=null,lb=new DOMParser,mb=null,vb=null,Ab=va=null;for(Ab=null;ca<B;++ca)la[ca].getAttribute('disabled')==null&&(la[ca].id=/^null$/i.test(la[ca].getAttribute('id'))?null:la[ca].getAttribute('id'),la[ca].id&&/^popin\.link/.test(la[ca].id)&&/^popin\.click/.test(la[ca].id)?va=la[ca].id:(Ab=!0,va=la[ca].getAttribute('href'),va&&va!=''&&va!='#'||(va!='#'&&la[ca].setAttribute('href','#'),Ab=!1),/^null$/i.test(la[ca].id)?Ab?(va='popin.link.'+q(),la[ca].setAttribute('data-gina-popin-is-link',
604
+ !0)):(va='popin.click.'+q(),la[ca].setAttribute('data-gina-popin-is-link',!1)):va=la[ca].id,la[ca].id=va,la[ca].setAttribute('id',va)),Ab=(Ab=la[ca].getAttribute('data-gina-form-submit'))&&/^true$/i.test(Ab)?!0:!1,Ab||(/^(null|\s*)$/.test(la[ca].getAttribute('href'))||addListener(gina,la[ca],'click',function(ub){ub.preventDefault();w.isRedirecting=!0;if(w.hasForm){qa=w.target.getElementsByTagName('FORM');ra=0;for(Ta=qa.length;ra<Ta;++ra)if(mb=ub.currentTarget.id,vb=lb.parseFromString(qa.item(ra).innerHTML,
605
+ 'text/html').getElementById(mb)||!1)Oa=qa[ra].getAttribute('data-gina-form-inherits-data')||null,Za=D(Za,JSON.parse(decodeURIComponent(Oa)));Za.count()>0&&(/\?/.test(ub.currentTarget.href)?ub.currentTarget.href+='&inheritedData='+encodeRFC5987ValueChars(JSON.stringify(Za)):ub.currentTarget.href+='?inheritedData='+encodeRFC5987ValueChars(JSON.stringify(Za)))}}),typeof gina.events[va]!='undefined'&&gina.events[va]==la[ca].id||k('link',va,la[ca])));if(w.hasForm)for(k=null,la=G.getElementsByTagName('form'),
606
+ ca=0,B=la.length;ca<B;++ca)k=la[ca].getAttribute('id')||'form.'+q(),la[ca].setAttribute('id',k),la[ca].id=k,w.$forms.indexOf(k)<0&&w.$forms.push(k),la[ca].close=qb,Ib.isPopinContext=!0,Ib.validateFormById(la[ca].getAttribute('id')),removeListener(gina,w.target,ha)}function Ea(k,w){var G=U();if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&typeof k!='undefined'&&typeof w!='undefined'&&k){G=k;try{var ha=null;!w&&G.error&&/^(\{|\[)/.test(G.error)&&(G.error=JSON.parse(G.error));if(typeof G.error!=
607
+ 'undefined'&&typeof G.error=='object'&&typeof G.error=='object'){ha={status:G.status};for(xErr in G.error)/^error$/.test(xErr)||(ha[xErr]=G.error[xErr]);ha.error=G.error.error;G=ha}else typeof G.error!='undefined'&&typeof G.error=='string'&&(G=k);G.isXHRViewData=!0;ginaToolbar.update('data-xhr',G);return}catch(ca){throw ca;}}try{G=ma(typeof gina.popin!='undefined'&&gina.popin?gina.popin.activePopinId:Ha.activePopinId)}catch(ca){G&&ginaToolbar.update('data-xhr',ca)}G||(new DOMParser).parseFromString(k,
608
608
  'text/html').getElementsByClassName('popin')[0]||(new DOMParser).parseFromString(k,'text/html').getElementsByTagName('div');G=typeof k=='string'&&/<(.*)>/.test(k)?(new DOMParser).parseFromString(k,'text/html').getElementById('gina-without-layout-xhr-data'):document.getElementById('gina-without-layout-xhr-data');if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&G)try{typeof G.value!='undefined'&&G.value&&(G=JSON.parse(decodeURIComponent(G.value)),G.isXHRViewData=!0,ginaToolbar.update('data-xhr',
609
609
  G))}catch(ca){throw ca;}k=typeof k=='string'&&/<(.*)>/.test(k)?(new DOMParser).parseFromString(k,'text/html').getElementById('gina-without-layout-xhr-view'):document.getElementById('gina-without-layout-xhr-view');if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&k)try{typeof k.value!='undefined'&&k.value&&(k=JSON.parse(decodeURIComponent(k.value)),ginaToolbar.update('view-xhr',k))}catch(ca){throw ca;}}function Da(k,w){if(k&&w&&k.options&&k.options.preOpen&&!w.hasAttribute('open')&&
610
- !w.classList.contains('gina-popin-is-active')){w.innerHTML=typeof k.options.loadingShell=='string'&&k.options.loadingShell?k.options.loadingShell:'<div class="gina-popin-skeleton" aria-hidden="true"><div class="gina-popin-skeleton-line gina-popin-skeleton-title"></div><div class="gina-popin-skeleton-line"></div><div class="gina-popin-skeleton-line gina-popin-skeleton-line--short"></div></div>';if(w.tagName==='DIALOG')if(typeof w.showModal==='function')try{w.showModal()}catch(ia){}else w.setAttribute('open',
611
- !0);else{w.classList.add('gina-popin-is-active');var G=w.parentElement;G&&!G.classList.contains('gina-popin-is-active')&&G.classList.add('gina-popin-is-active')}k.isLoading=!0;wa(k,w)}}function wa(k,w){gb.options.useDialogMode&&w&&!w._ginaCloseSyncBound&&(w._ginaCloseSyncBound=!0,w.addEventListener('close',function(){(k.isOpen||k.isLoading)&&ob(k.name)}))}function Va(k){var w=document.getElementById(k.id)||null,G=document.getElementById(k.openTrigger)||null;k._loadSeq=(k._loadSeq||0)+1;if(k._loadXhr&&
612
- k._loadXhr.readyState!==4)try{k._loadXhr.abort()}catch(ca){}k._loadXhr=null;k.isLoading=!1;if(w){if(w.tagName==='DIALOG')if(typeof w.close==='function'&&w.hasAttribute('open'))try{w.close()}catch(ca){w.removeAttribute('open')}else w.removeAttribute('open');else{w.classList.remove('gina-popin-is-active');var ia=w.parentElement;ia&&ia.classList.remove('gina-popin-is-active')}w.innerHTML='';w.removeAttribute('data-gina-popin-loading')}k.target&&typeof k.target.removeAttribute=='function'&&k.target.removeAttribute('data-gina-popin-loading');
613
- Ga(G);k.id===Ia.activePopinId&&P(null);triggerEvent(gina,k.target,'close.'+k.id,k)}function ba(k){k&&(/^A$/i.test(k.tagName)?k.setAttribute('aria-disabled',!0):k.setAttribute('disabled',!0),U.arm(k))}function Ga(k){k&&(/^A$/i.test(k.tagName)?k.removeAttribute('aria-disabled'):k.removeAttribute('disabled'),U.disarm(k))}function La(k,w,G){if(typeof k=='undefined'){if(typeof this.name=='undefined')throw Error('`$popin.name` needs to be defined !');k=this.name}else typeof this.name=='undefined'&&k!='undefined'&&
614
- (this.name=k);var ia=Aa(k),ca=ia.id,ta=document.getElementById(ia.openTrigger)||null,B=ia._loadSeq=(ia._loadSeq||0)+1;w&&(ia._contentUrl=w);gina.popin.activePopinId||P(ca);var la=document.getElementById(ca)||null;if(la==null){var va=null;gb.options.useDialogMode?(va=ia.options.class+' '+ca,la=document.createElement('dialog'),la.setAttribute('id',ca),la.setAttribute('class',va),la.setAttribute('data-type','modal'),la.setAttribute('aria-labelledby',k),($overlay=document.getElementById('gina-popins-overlay'))?
615
- $overlay.appendChild(la):Ia.target.appendChild(la)):(va=ia.options.class+' '+ca,la=document.createElement('div'),la.setAttribute('id',ca),la.setAttribute('class',va),Ia.target.firstChild.appendChild(la))}typeof G=='undefined'?G=cb:(k=cb.withCredentials,G=D(G,cb),G.withCredentials=k);/^(http|https):/.test(w)&&!(new RegExp('^'+window.location.protocol+'//'+window.location.host)).test(w)&&(k=N.getRootDomain(window.location.hostname).value,va=N.getRootDomain(w).value,k=k===va?!0:!1,gina.config.envIsDev&&
616
- (console.debug('Checking CORS from Popin plugin...TODO - local CORS Proxy'),console.debug('Is request from same domain ? ',k)),k||(G.withCredentials=!1));G.url=w;ia.options=D(G,ia.options);var ra=null,sa=null;if(window.XMLHttpRequest)sa=new XMLHttpRequest;else if(window.ActiveXObject)try{sa=new ActiveXObject('Msxml2.XMLHTTP')}catch(Oa){try{sa=new ActiveXObject('Microsoft.XMLHTTP')}catch(lb){}}ia._loadXhr=sa;G.withCredentials?'withCredentials'in sa?G.isSynchrone?sa.open(G.method,G.url,G.isSynchrone):
617
- sa.open(G.method,G.url):typeof XDomainRequest!='undefined'?(sa=new XDomainRequest,sa.open(G.method,G.url)):(sa=null,ra='CORS not supported: the server is missing the header `"Access-Control-Allow-Credentials": true` ',triggerEvent(gina,la,'error.'+ca,ra)):G.isSynchrone?sa.open(G.method,G.url,G.isSynchrone):sa.open(G.method,G.url);var Ta=!1;if(sa){sa.withCredentials=typeof G.withCredentials!='undefined'?G.withCredentials:!1;sa.onerror=function(Oa,lb){ra={status:sa.status,error:'Transaction error: might be due to the server CORS settings.\nPlease, check the console for more details.'};
618
- Ta=!0;Ia.eventData.error=ra+'\n'+lb;Ea(ra,Ta);triggerEvent(gina,la,'error.'+ca,ra)};for(var $a in G.headers)sa.setRequestHeader($a,G.headers[$a]);/^(1|3)$/.test(sa.readyState)&&(ia.target.setAttribute('data-gina-popin-loading',!0),Da(ia,la),ba(ta));sa.onreadystatechange=function(Oa){/^(1|3)$/.test(sa.readyState)&&(ia.target.setAttribute('data-gina-popin-loading',!0),Da(ia,la),ba(ta));if(sa.readyState==4&&(ia.target.removeAttribute('data-gina-popin-loading'),ta&&(/^A$/i.test(ta.tagName)?ta.removeAttribute('aria-disabled'):
619
- ta.removeAttribute('disabled'),U.disarm(ta)),B===ia._loadSeq))if(Oa=ia._loadXhr=null,/^2/.test(sa.status))try{Oa=sa.responseText;var lb=sa.getResponseHeader('Content-Type'),nb=/application\/json/.test(lb)?!0:!1,vb=!0;nb&&(Oa=JSON.parse(sa.responseText),Oa.status=sa.status,Oa.contentType=lb,vb=!1);Ia.eventData.success=Oa;if(!nb&&ia.isOpen&&!ia.hasForm&&!ia.partialTarget||!nb&&ia.isOpen&&vb&&!ia.partialTarget)ab.call(ia,Oa,vb);else{if(nb&&typeof Oa.location!='undefined'||nb&&typeof Oa.reload!='undefined'){lb=
620
- !1;typeof Oa.isXhrRedirect!='undefined'&&/^true$/i.test(Oa.isXhrRedirect)&&(lb=!0);if(typeof Oa.location!='undefined'&&lb){if(typeof Oa.popin!='undefined'&&typeof Oa.popin.close!='undefined'){ia.isRedirecting=!1;ia.close();var zb=Oa.popin.reload?Oa.popin.reload:!1;Oa.popin.location||Oa.popin.url||(delete Oa.popin,zb&&(Oa.popin={reload:zb}))}nb='_self';typeof Oa.target!='undefined'&&(Oa.target='_'+Oa.target,nb=Oa.target);if(/^_self$/.test(nb)){nb=null;nb=typeof Oa.popin!='undefined'?Oa.popin.location||
621
- Oa.popin.url:Oa.location;ia.load(ia.name,nb,ia.options);return}window.open(Oa.location,nb);return}if(typeof Oa.location!='undefined'){document.location=Oa.location;return}if(typeof Oa.reload!='undefined'){document.location.reload();return}typeof Oa.popin!='undefined'&&typeof Oa.popin.close!='undefined'&&(ia.isRedirecting=!1,ob(ia.name))}if(!nb){GINA_ENV_IS_DEV&&Ea(Oa);triggerEvent(gina,la,'loaded.'+ca,Oa);return}GINA_ENV_IS_DEV&&Ea(Oa);triggerEvent(gina,la,'success.'+ca,Oa)}GINA_ENV_IS_DEV&&Ea(Oa)}catch(tb){Ta=
622
- !1,Oa={status:422,error:tb.description||tb.stack},/application\/json/.test(sa.getResponseHeader('Content-Type'))&&(Oa.error=JSON.parse(sa.responseText),Ta=!0),Ia.eventData.error=Oa,GINA_ENV_IS_DEV&&Ea(Oa,Ta),triggerEvent(gina,la,'error.'+ca,Oa)}else Ta=!1,Oa={status:sa.status,error:sa.responseText},/application\/json/.test(sa.getResponseHeader('Content-Type'))&&(Oa.error=JSON.parse(sa.responseText),Ta=!0),Ia.eventData.error=Oa,GINA_ENV_IS_DEV&&Ea(Oa,Ta),triggerEvent(gina,la,'error.'+ca,Oa),ia.isLoading&&
623
- !ia.isOpen&&Va(ia)};sa.send();return{open:function(){var Oa=!1;addListener(gina,la,'loaded.'+ca,function(lb){lb.preventDefault();Oa||(Oa=!0,P(ia.id),ka(lb,ia),qb(ia.name))})}}}}function ab(k,w){var G=this&&this.id&&Ia.$popins[this.id]===this?this:T();if(G){var ia=!G.isOpen&&G.isLoading;if(!G.isOpen&&!ia)throw Error('Popin `'+G.name+'` is not open !');G.isRedirecting=typeof w!='undefined'?w:!1;w=ia?document.getElementById(G.id)||G.target:G.target;w.innerHTML=k.trim();Cb(G.name,!0);ka({target:w,type:'loaded.'+
624
- G.id},G);if(!gb.options.useDialogMode&&/safari/i.test(window.navigator.userAgent))for(k=document.getElementsByTagName('link'),w=0;w<k.length;w++)if(k[w].getAttribute('rel')=='stylesheet'){var ca=k[w].getAttribute('href').split('?')[0];if(!/gina\.min\.css|gina\.css/.test(ca))continue;ca=ca+'?version='+(new Date).getMilliseconds();k[w].setAttribute('href',ca)}ia?qb(G.name):G.isRedirecting?triggerEvent(gina,Ia.target,'loaded.'+G.id,G):triggerEvent(gina,Ia.target,'open.'+G.id,G);if(gina&&typeof window.ginaToolbar!=
625
- 'undefined'&&window.ginaToolbar)try{ginaToolbar.update('el-xhr',G.id)}catch(ta){throw ta;}}}function ib(k,w){var G=document.createElement('script');G.src=k;G.id='popin-script-'+q();w&&w.$headers.push({id:G.id});document.head.appendChild(G)}function Ya(k,w){var G=document.createElement('link');G.rel='stylesheet';G.href=k;G.id='popin-style-'+q();w&&w.$headers.push({id:G.id});document.head.appendChild(G)}function qb(k){var w=null;w=null;var G=typeof k!='undefined'?Aa(k):ma(this.id);if(!G)throw Error('Popin name `'+
626
- k+'` not found !');w=G.id;w=document.getElementById(w);var ia=G.parentScripts,ca=w.getElementsByTagName('script');k=G.parentStyles;var ta=w.getElementsByTagName('link'),B=0,la=ca.length,va=gina.config.hostname.replace(/(https|http|):\/\//,'').replace(/:\d+$/,'');for(va=new RegExp(va+':\\d+|'+va);B<la;++B){if(typeof ca[B].src=='undefined'||ca[B].src=='')continue;let ra=ca[B].src.replace(/(https|http|):\/\//,'').replace(va,'').replace(/([?&])v=[0-9a-f]{10}(&|(?=#)|$)/,function(sa,Ta,$a){return $a===
627
- '&'?Ta:''});ia.indexOf(ra)>-1||ib(ca[B].src,G)}B=0;for(la=ta.length;B<la;++B){if(typeof ta[B].href=='undefined'||ta[B].href=='')continue;ia=ta[B].href.replace(/(https|http|):\/\//,'').replace(va,'').replace(/([?&])v=[0-9a-f]{10}(&|(?=#)|$)/,function(ra,sa,Ta){return Ta==='&'?sa:''});k.indexOf(ia)>-1||Ya(ta[B].href,G)}gina.popinIsBinded||ka({target:w,type:'loaded.'+G.id},G);w.classList.add('gina-popin-is-active');gb.options.useDialogMode||(Ia.target.firstChild.classList.add('gina-popin-is-active'),
628
- Ia.target.firstChild.classList.contains('gina-popin-is-active')&&removeListener(gina,Ia.target,'open.'+G.id));y(w);gb.options.useDialogMode&&!w.hasAttribute('open')&&(k=typeof G.modal=='boolean'?G.modal:!0,typeof w.showModal==='function'?k?w.showModal():(w.show(),R(G,w),x(w)):w.setAttribute('open',!0));wa(G,w);G.isOpen=!0;G.isLoading=!1;G.target=w;P(G.id);if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar)try{ginaToolbar.update('el-xhr',G.id)}catch(ra){throw ra;}triggerEvent(gina,
629
- Ia.target,'open.'+G.id,G)}function Cb(k,w){var G=typeof k!='undefined'?Aa(k):T(),ia=null;if(!G&&typeof k!='undefined')throw Error('Popin `'+k+'` not found !');if(typeof G!='undefined'&&G!=null&&(ia=G.target,w=typeof w!='undefined'?w:!1,ia!=null&&ia.classList.contains('gina-popin-is-active'))){if(!w&&(gb.options.useDialogMode||Ia.target.firstChild.classList.remove('gina-popin-is-active'),ia.classList.remove('gina-popin-is-active'),!G.isInPageDialog)){ia.innerHTML='';var ca=G._contentUrl;qa(G);ca&&
630
- setTimeout(function(){K(ca)},120)}ia.removeAttribute('data-gina-popin-loading');U.disarm(document.getElementById(G.openTrigger));if((k=G.options&&G.options.validator||Jb)&&k.$forms){w=G.$forms.slice();ia=G.$forms.length=0;for(var ta=w.length;ia<ta;++ia){var B=k.$forms[w[ia]];if(typeof B!='undefined')try{B.destroy()}catch(la){typeof console!='undefined'&&console.warn&&console.warn('[gina] popin teardown: destroy() failed for form `'+w[ia]+'`',la)}}}gina.popinIsBinded=!1;removeListener(gina,G.target,
631
- 'loaded.'+G.id)}}function ob(k){if(typeof k=='undefined'&&(/^true$/.test(this.isOpen)||/^true$/.test(this.isLoading))){k=this.name;var w=this}else{w=Aa(k)||T();if(!w)return;k=w.name}if(!w&&typeof k!='undefined')throw Error('Popin `'+k+'` not found !');if(!w.isOpen&&w.isLoading)w.isRedirecting||Va(w);else if(w.isOpen&&typeof w!='undefined'&&w!=null&&!w.isRedirecting){var G=w.target;var ia=document.getElementById(w.openTrigger)||null;typeof G.close==='function'?G.close():G.removeAttribute('open');removeListener(gina,
632
- w.target,'ready.'+Ia.id);w.hasForm&&(w.hasForm=!1);if(G!=null&&G.classList.contains('gina-popin-is-active')){Cb(k);w.isOpen=!1;gina.popinIsBinded=!1;GINA_ENV_IS_DEV&&gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&ginaToolbar.restore();P(null);if(w.$headers.length>0){k=0;var ca=w.$headers.length;try{for(;k<ca;++k)document.getElementById(w.$headers[k].id).remove()}catch(B){console.warn('Could not remove script `'+w.$headers[k].id+'`\n'+B.stack)}w.$headers=[]}document.body.removeAttribute('data-gina-popin-scroll-lock');
633
- G&&G.__ginaOnKeydown&&(G.removeEventListener('keydown',G.__ginaOnKeydown),G.__ginaOnKeydown=null);k=document.querySelectorAll('[data-gina-popin-inert]');ca=0;for(var ta=k.length;ca<ta;++ca)k[ca].removeAttribute('inert'),k[ca].removeAttribute('data-gina-popin-inert');ia&&(/^A$/i.test(ia.tagName)?ia.removeAttribute('aria-disabled',!0):ia.removeAttribute('disabled',!0),U.disarm(ia),typeof ia.focus=='function'&&ia.focus());G.removeAttribute('data-gina-popin-loading');triggerEvent(gina,w.target,'close.'+
634
- w.id,w)}}}function Kb(k){var w=typeof k!='undefined'?Aa(k):T(),G;if(!w&&typeof k!='undefined')throw Error('Popin `'+k+'` not found !');if(w){var ia=w.id;k=w.name;if(w.isOpen||w.isLoading)w.isRedirecting=!1,ob(k);(G=document.getElementById(ia))&&G.remove();removeListener(gina,w.target,'loaded.'+ia);removeListener(gina,w.target,'ready.'+ia);removeListener(gina,w.target,'open.'+ia);removeListener(gina,w.target,'close.'+ia);delete Ia.$popins[ia];w=da.indexOf(k);w>-1&&da.splice(w,1);(typeof gina.popin!=
635
- 'undefined'&&gina.popin?gina.popin.activePopinId:Ia.activePopinId)===ia&&P(null);triggerEvent(gina,Ia.target,'destroy.'+ia,{name:k,id:ia})}}function Mb(k,w){if(typeof w!='object')throw Error('`options` must be an object');k.options=D(w,gb.options);k.id='gina-popin-'+Ia.id+'-'+k.options.name;if(typeof Ia.$popins[k.id]=='undefined'){if(typeof k.options.name!='string'||k.options.name=='')throw Error('`options.name` can not be left `empty` or `undefined`');if(da.indexOf(k.options.name)>-1)throw Error('`popin '+
636
- k.options.name+'` already exists !');da.push(k.options.name);typeof k.options.validator!='undefined'&&(Jb=k.options.validator,k.validateFormById=Jb.validateFormById);k.options['class']='gina-popin-container '+k.options['class'];k.name=k.options.name;k.target=Ia.target;k.load=La;k.loadContent=ab;k.open=qb;k.close=ob;GINA_ENV_IS_DEV&&(k.updateToolbar=Ea);k.parentScripts=[];k.parentStyles=[];w=gina.config.hostname.replace(/(https|http|):\/\//,'').replace(/:\d+$/,'');w=new RegExp(w+':\\d+|'+w);var G=
637
- document.getElementsByTagName('script');for(let ca=0,ta=G.length;ca<ta;ca++){if(!G[ca].src||G[ca].src=='')continue;var ia=G[ca].src.replace(/(https|http|):\/\//,'').replace(w,'').replace(/([?&])v=[0-9a-f]{10}(&|(?=#)|$)/,function(B,la,va){return va==='&'?la:''});k.parentScripts[ca]=ia}G=document.getElementsByTagName('link');for(let ca=0,ta=G.length;ca<ta;ca++){if(typeof G[ca].rel=='undefined'||!/stylesheet/i.test(G[ca].rel))continue;ia=G[ca].href.replace(/(https|http|):\/\//,'').replace(w,'').replace(/([?&])v=[0-9a-f]{10}(&|(?=#)|$)/,
638
- function(B,la,va){return va==='&'?la:''});k.parentStyles[ca]=ia}Ia.$popins[k.id]=k;Ua(k)}}this.plugin='popin';var pb='init loaded ready open close click destroy success error progress'.split(' ');registerEvents(this.plugin,pb);var gb={options:{name:void 0,'class':'gina-popin-default',useDialogMode:!0,cancelOnOverlayClick:!1,preOpen:!1,loadingShell:null,modal:null},authorizedEvents:['ready','error'],events:{}};Z&&typeof Z.modal!='undefined'&&(gb.options.modal=Z.modal);var Ia={plugin:this.plugin,id:'gina-popins-'+
639
- q(),on,eventData:{},$popins:aa,activePopinId:null,getActivePopin:null,getPopinContaining:null,target:document,isReady:!1,initialized:!1},Gb={plugin:this.plugin,on,eventData:{},target:document,name:null,load:null,loadContent:null,open:null,isOpen:!1,isLoading:!1,_loadSeq:0,_loadXhr:null,isRedirecting:!1,close:null,$forms:[],hasForm:!1,$headers:[]},Jb=null,da=[],xa=new RegExp('^popin\\.click\\.gina-popin-'+Ia.id),ja=function(){var k=document.createElement('div');k.id=Ia.id;k.setAttribute('id',Ia.id);
640
- k.setAttribute('class','gina-popins');if(!gb.options.useDialogMode){var w=document.createElement('div');w.setAttribute('id','gina-popins-overlay');w.setAttribute('class','gina-popins-overlay');k.appendChild(w)}document.body.appendChild(k);Ia.target=k;Ia.on=on;gina.popinContainer=Ia.id},C=function(k,w,G){addListener(gina,k,'click',function(ia){cancelEvent(ia);triggerEvent(gina,w,G)})},P=function(k){Ia.activePopinId=k;typeof gina.popin!='undefined'&&gina.popin&&(gina.popin.activePopinId=k)},ma=function(k){return typeof Ia.$popins[k]!=
641
- 'undefined'?Ia.$popins[k]:null},Aa=function(k){var w=null,G;for(G in Ia.$popins)if(Ia.$popins[G].name===k){w=Ia.$popins[G];break}return w},Ua=function(k,w){w=document.querySelectorAll('[data-gina-popin-name]');var G=null,ia=null,ca=null,ta=null,B=ia=null,la=null;B=0;for(la=w.length;B<la;++B){G=w[B];ia=G.getAttribute('data-gina-popin-name');G.tagName=='A'&&(ta=G.getAttribute('href'),ta==''||ta=='#'||/#/.test(ta))&&(ta=null);ta||typeof G.getAttribute('data-gina-popin-url')=='undefined'||(ta=G.getAttribute('data-gina-popin-url'));
642
- if(!ta)throw Error('Found `data-gina-popin-name` without `url` !');G.url||(G.url=ta);G.popinName||(G.popinName=ia);if(ia==k.name&&(ca=G.id||G.getAttribute('id')||null,ia='popin.click.gina-popin-'+Ia.id+'-'+q()+'-'+ia,ca&&RegExp('^popin.click.gina-popin-').test(ca)&&(ia=ca),!gina.events[ia])){G.id=ia;G.setAttribute('id',ia);addListener(gina,G,ia,function(ra){cancelEvent(ra);var sa=ra.currentTarget;if(('disabled'in sa||sa.getAttribute('disabled')==null||sa.getAttribute('disabled')=='false')&&sa.getAttribute('aria-disabled')!=
643
- 'true'){k.openTrigger=ra.currentTarget.id||ra.currentTarget.getAttribute('id');var Ta={isSynchrone:!1,withCredentials:!1};Ta=D(k.options,Ta);var $a=this.getAttribute('data-gina-popin-url')||this.getAttribute('href');if(!$a)throw Error('Popin `url` not defined, please check value for `data-gina-popin-url`');ra=function(){var nb=!1;addListener(gina,k.target,'loaded.'+k.id,function(vb){vb.preventDefault();nb||(nb=!0,console.debug('active popin should be ',k.id),P(k.id),ka(vb,k),k.isOpen||qb(k.name))});
644
- La(k.name,$a,Ta)};var Oa=!0,lb=!1;!/^false$/i.test(this.getAttribute('data-gina-dialog-preload'))&&ua($a,k,ra,function(){Oa=!1;lb&&(lb=!1,Ga(sa))})?Oa&&(ba(sa),lb=!0):ra()}});ca=G.childNodes;var va=0;lLen=ca.length;if(lLen>0)for(;va<lLen;++va)typeof ca[va].tagName!='undefined'&&C(ca[va],G,ia)}}addListener(gina,document,'click',function(ra){if(!('disabled'in ra.target)&&ra.target.getAttribute('disabled')!=null&&ra.target.getAttribute('disabled')!='false')return!1;if(/^popin\.close\./.test(ra.target.id)){cancelEvent(ra);
645
- var sa=ra.target.id;triggerEvent(gina,ra.target,sa,ra.detail)}/^popin\.click\./.test(ra.target.id)&&(cancelEvent(ra),sa=ra.target.id,xa.test(sa)&&triggerEvent(gina,ra.target,sa,ra.detail))});gina.popinIsBinded=!1},cb={url:'',method:'GET',isSynchrone:!1,withCredentials:!0,headers:{'X-Requested-With':'XMLHttpRequest'}};gina.hasPopinHandler?(Ia.target=document.getElementById(gina.popinContainer),Ia.on=on):ja();N||new H(function(k,w){if(k)throw k;N=w});return function(k){Ia.getPopinById=ma;Ia.getPopinByName=
646
- Aa;Ia.load=La;Ia.loadContent=ab;Ia.getActivePopin=T;Ia.getPopinContaining=Y;Ia.open=qb;Ia.close=ob;Ia.destroy=Kb;ya();ha();Ja();addListener(gina,Ia.target,'init.'+Ia.id,function(w){w=null;typeof Ia.$popins['gina-popin-'+Ia.id+'-'+k.name]=='undefined'&&(w=D({},Gb),Mb(w,k));Ia.isReady=!0;gina.hasPopinHandler=!0;typeof gina.popin!='undefined'&&gina.popin||(gina.popin=Ia);triggerEvent(gina,Ia.target,'ready.'+Ia.id,w)});Ia.initialized=!0;return Ia}(Z)}});
647
- function StoragePlugin(f){function q(Z){aa=JSON.parse(E.getItem(this.bucket));typeof aa[Z]=='undefined'&&(aa[Z]=[],E.setItem(this.bucket,JSON.stringify(aa)),aa=JSON.parse(E.getItem(this.bucket)));A[Z]={_collection:Z,_bucket:this.bucket};A[Z]=H(A[Z],r);return A[Z]}function F(Z){if(typeof Z!=='object')throw Error('filter must be an object');var T=aa[this._collection],Y=Z.count(),v=0,L=null;if(Y==0)return null;for(var y in T)for(var x in Z){var R=typeof Z[x]!='boolean'?Z[x].toLocaleLowerCase():Z[x];
648
- Z[x]&&l.indexOf(R)>-1&&R=='not null'&&typeof T[y][x]!='undefined'&&typeof T[y][x]!=='object'&&T[y][x]===Z[x]&&T[y][x]!='null'&&T[y][x]!='undefined'?L.indexOf(T[y][x])<0&&(++v,v===Y&&(L=T[y],L._index=y,L._collection=this._collection,L._bucket=this._bucket)):typeof T[y][x]!='undefined'&&typeof T[y][x]!=='object'&&T[y][x]===Z[x]&&(++v,v===Y&&(L=T[y],L._index=y,L._collection=this._collection,L._bucket=this._bucket,L._filter=Z))}L&&(L.save=n);return L}var H=H||require('lib/merge');q=q||require('lib/collection');
649
- var N=N||require('lib/uuid'),U=U||require('helpers/dateFormat'),D={bucket:'default'},m={},E=null,A={},aa={},l=['not null'],W={bucket:void 0,drop:function(){E.removeItem(D.bucket);m=null;for(var Z in this)delete this[Z];return m},Collection:q},r={insert:function(Z){Z._id=Date.now().toString(36)+'-'+N(16);Z._createdAt=(new Date).format('isoDateTime');Z._updatedAt=(new Date).format('isoDateTime');aa[this._collection][aa[this._collection].length]=Z;E.setItem(this._bucket,JSON.stringify(aa))},find:function(Z,
650
- T){if(!Z)return aa[this._collection];if(typeof Z!=='object')throw Error('filter must be an object');T=aa[this._collection];Z.count();var Y=0,v=[],L;for(L in T)for(var y in Z){var x=typeof Z[y]!='boolean'?Z[y].toLocaleLowerCase():Z[y];Z[y]&&l.indexOf(x)>-1&&x=='not null'&&typeof T[L][y]!='undefined'&&typeof T[L][y]!=='object'&&T[L][y]!='null'&&T[L][y]!='undefined'?v.indexOf(T[L][y])<0&&(v[Y]=T[L][y],++Y):typeof T[L][y]!='undefined'&&typeof T[L][y]!=='object'&&T[L][y]===Z[y]&&(v[Y]=T[L],++Y)}return v},
651
- findOne:F,update:null,'delete':function(Z){if(typeof Z!=='object')throw Error('filter must be an object');var T=JSON.clone(aa[this._collection]),Y=0,v=[],L;for(L in T)for(var y in Z)Z[y]&&l.indexOf(Z[y].toLocaleLowerCase())>-1&&Z[y].toLowerCase()=='not null'&&typeof T[L][y]!='undefined'&&typeof T[L][y]!=='object'&&T[L][y]!='null'&&T[L][y]!='undefined'?v.indexOf(T[L][y])<0&&(v[Y]=T[L][y],delete aa[this._collection][L][y],++Y):typeof T[L][y]!='undefined'&&typeof T[L][y]!=='object'&&T[L][y]===Z[y]&&
652
- (v[Y]=T[L],aa[this._collection].splice(L,1),++Y);return v.length>0?(E.setItem(this._bucket,JSON.stringify(aa)),!0):!1},drop:function(Z){if(typeof aa[this._collection]=='undefined')throw Error('Collection `'+Z+'` not found');delete A[this._collection];delete aa[this._collection];E.setItem(this._bucket,JSON.stringify(aa))}},n=function(Z){Z=Z||!1;try{var T=JSON.clone(aa),Y=this._index,v=this._collection,L=this._bucket,y=this._filter;this._updatedAt=(new Date).format('isoDateTime');T[v][Y]=H(T[v][Y],
653
- this,!0);delete T[v][Y]._index;delete T[v][Y]._collection;delete T[v][Y]._bucket;delete T[v][Y].save;delete T[v][Y]._filter;if(Z&&typeof T[v][Y]=='object'){var x=function(X,g){for(var V=0,fa=X.length;V<fa;++V)typeof g[V]!='object'||typeof X[V]=='undefined'||Array.isArray(X[V])?Array.isArray(X[V])?x(X[V],g[V]):typeof X[V]=='undefined'&&delete g[V]:R(X[V],g[V]);return g},R=function(X,g){for(var V in g)typeof g[V]!='object'||typeof X[V]=='undefined'||Array.isArray(X[V])?Array.isArray(X[V])?x(X[V],g[V]):
654
- typeof X[V]=='undefined'&&delete g[V]:R(X[V],g[V]);return g};Array.isArray(T[v][Y])?T[v][Y]=x(this,T[v][Y]):typeof T[v][Y]=='object'?T[v][Y]=R(this,T[v][Y]):typeof this[prop]=='undefined'&&delete T[v][Y]}aa[v][Y]=T[v][Y];E.setItem(L,JSON.stringify(aa));return F(y)}catch(X){throw X;}};(function(Z){if(!window.localStorage||window.localStorage&&!typeof window.localStorage.setItem=='undefined')throw Error('Make sure your browser supports `window.localStorage` to use Gina Storage. See: `https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API#Browser_compatibility`');
610
+ !w.classList.contains('gina-popin-is-active')){w.innerHTML=typeof k.options.loadingShell=='string'&&k.options.loadingShell?k.options.loadingShell:'<div class="gina-popin-skeleton" aria-hidden="true"><div class="gina-popin-skeleton-line gina-popin-skeleton-title"></div><div class="gina-popin-skeleton-line"></div><div class="gina-popin-skeleton-line gina-popin-skeleton-line--short"></div></div>';if(w.tagName==='DIALOG')if(typeof w.showModal==='function')try{w.showModal()}catch(ha){}else w.setAttribute('open',
611
+ !0);else{w.classList.add('gina-popin-is-active');var G=w.parentElement;G&&!G.classList.contains('gina-popin-is-active')&&G.classList.add('gina-popin-is-active')}k.isLoading=!0;wa(k,w)}}function wa(k,w){gb.options.useDialogMode&&w&&!w._ginaCloseSyncBound&&(w._ginaCloseSyncBound=!0,w.addEventListener('close',function(){(k.isOpen||k.isLoading)&&qb(k.name)}))}function Va(k){var w=document.getElementById(k.id)||null,G=document.getElementById(k.openTrigger)||null;k._loadSeq=(k._loadSeq||0)+1;if(k._loadXhr&&
612
+ k._loadXhr.readyState!==4)try{k._loadXhr.abort()}catch(ca){}k._loadXhr=null;k.isLoading=!1;if(w){if(w.tagName==='DIALOG')if(typeof w.close==='function'&&w.hasAttribute('open'))try{w.close()}catch(ca){w.removeAttribute('open')}else w.removeAttribute('open');else{w.classList.remove('gina-popin-is-active');var ha=w.parentElement;ha&&ha.classList.remove('gina-popin-is-active')}w.innerHTML='';w.removeAttribute('data-gina-popin-loading')}k.target&&typeof k.target.removeAttribute=='function'&&k.target.removeAttribute('data-gina-popin-loading');
613
+ Ga(G);k.id===Ha.activePopinId&&P(null);triggerEvent(gina,k.target,'close.'+k.id,k)}function ba(k){k&&(/^A$/i.test(k.tagName)?k.setAttribute('aria-disabled',!0):k.setAttribute('disabled',!0),V.arm(k))}function Ga(k){k&&(/^A$/i.test(k.tagName)?k.removeAttribute('aria-disabled'):k.removeAttribute('disabled'),V.disarm(k))}function Ka(k,w,G){if(typeof k=='undefined'){if(typeof this.name=='undefined')throw Error('`$popin.name` needs to be defined !');k=this.name}else typeof this.name=='undefined'&&k!='undefined'&&
614
+ (this.name=k);var ha=Ba(k),ca=ha.id,ta=document.getElementById(ha.openTrigger)||null,B=ha._loadSeq=(ha._loadSeq||0)+1;w&&(ha._contentUrl=w);gina.popin.activePopinId||P(ca);var la=document.getElementById(ca)||null;if(la==null){var va=null;gb.options.useDialogMode?(va=ha.options.class+' '+ca,la=document.createElement('dialog'),la.setAttribute('id',ca),la.setAttribute('class',va),la.setAttribute('data-type','modal'),la.setAttribute('aria-labelledby',k),($overlay=document.getElementById('gina-popins-overlay'))?
615
+ $overlay.appendChild(la):Ha.target.appendChild(la)):(va=ha.options.class+' '+ca,la=document.createElement('div'),la.setAttribute('id',ca),la.setAttribute('class',va),Ha.target.firstChild.appendChild(la))}typeof G=='undefined'?G=cb:(k=cb.withCredentials,G=D(G,cb),G.withCredentials=k);/^(http|https):/.test(w)&&!(new RegExp('^'+window.location.protocol+'//'+window.location.host)).test(w)&&(k=M.getRootDomain(window.location.hostname).value,va=M.getRootDomain(w).value,k=k===va?!0:!1,gina.config.envIsDev&&
616
+ (console.debug('Checking CORS from Popin plugin...TODO - local CORS Proxy'),console.debug('Is request from same domain ? ',k)),k||(G.withCredentials=!1));G.url=w;ha.options=D(G,ha.options);var qa=null,ra=null;if(window.XMLHttpRequest)ra=new XMLHttpRequest;else if(window.ActiveXObject)try{ra=new ActiveXObject('Msxml2.XMLHTTP')}catch(Oa){try{ra=new ActiveXObject('Microsoft.XMLHTTP')}catch(lb){}}ha._loadXhr=ra;G.withCredentials?'withCredentials'in ra?G.isSynchrone?ra.open(G.method,G.url,G.isSynchrone):
617
+ ra.open(G.method,G.url):typeof XDomainRequest!='undefined'?(ra=new XDomainRequest,ra.open(G.method,G.url)):(ra=null,qa='CORS not supported: the server is missing the header `"Access-Control-Allow-Credentials": true` ',triggerEvent(gina,la,'error.'+ca,qa)):G.isSynchrone?ra.open(G.method,G.url,G.isSynchrone):ra.open(G.method,G.url);var Ta=!1;if(ra){ra.withCredentials=typeof G.withCredentials!='undefined'?G.withCredentials:!1;ra.onerror=function(Oa,lb){qa={status:ra.status,error:'Transaction error: might be due to the server CORS settings.\nPlease, check the console for more details.'};
618
+ Ta=!0;Ha.eventData.error=qa+'\n'+lb;Ea(qa,Ta);triggerEvent(gina,la,'error.'+ca,qa)};for(var Za in G.headers)ra.setRequestHeader(Za,G.headers[Za]);/^(1|3)$/.test(ra.readyState)&&(ha.target.setAttribute('data-gina-popin-loading',!0),Da(ha,la),ba(ta));ra.onreadystatechange=function(Oa){/^(1|3)$/.test(ra.readyState)&&(ha.target.setAttribute('data-gina-popin-loading',!0),Da(ha,la),ba(ta));if(ra.readyState==4&&(ha.target.removeAttribute('data-gina-popin-loading'),ta&&(/^A$/i.test(ta.tagName)?ta.removeAttribute('aria-disabled'):
619
+ ta.removeAttribute('disabled'),V.disarm(ta)),B===ha._loadSeq))if(Oa=ha._loadXhr=null,/^2/.test(ra.status))try{Oa=ra.responseText;var lb=ra.getResponseHeader('Content-Type'),mb=/application\/json/.test(lb)?!0:!1,vb=!0;mb&&(Oa=JSON.parse(ra.responseText),Oa.status=ra.status,Oa.contentType=lb,vb=!1);Ha.eventData.success=Oa;if(!mb&&ha.isOpen&&!ha.hasForm&&!ha.partialTarget||!mb&&ha.isOpen&&vb&&!ha.partialTarget)$a.call(ha,Oa,vb);else{if(mb&&typeof Oa.location!='undefined'||mb&&typeof Oa.reload!='undefined'){lb=
620
+ !1;typeof Oa.isXhrRedirect!='undefined'&&/^true$/i.test(Oa.isXhrRedirect)&&(lb=!0);if(typeof Oa.location!='undefined'&&lb){if(typeof Oa.popin!='undefined'&&typeof Oa.popin.close!='undefined'){ha.isRedirecting=!1;ha.close();var Ab=Oa.popin.reload?Oa.popin.reload:!1;Oa.popin.location||Oa.popin.url||(delete Oa.popin,Ab&&(Oa.popin={reload:Ab}))}mb='_self';typeof Oa.target!='undefined'&&(Oa.target='_'+Oa.target,mb=Oa.target);if(/^_self$/.test(mb)){mb=null;mb=typeof Oa.popin!='undefined'?Oa.popin.location||
621
+ Oa.popin.url:Oa.location;ha.load(ha.name,mb,ha.options);return}window.open(Oa.location,mb);return}if(typeof Oa.location!='undefined'){document.location=Oa.location;return}if(typeof Oa.reload!='undefined'){document.location.reload();return}typeof Oa.popin!='undefined'&&typeof Oa.popin.close!='undefined'&&(ha.isRedirecting=!1,qb(ha.name))}if(!mb){GINA_ENV_IS_DEV&&Ea(Oa);triggerEvent(gina,la,'loaded.'+ca,Oa);return}GINA_ENV_IS_DEV&&Ea(Oa);triggerEvent(gina,la,'success.'+ca,Oa)}GINA_ENV_IS_DEV&&Ea(Oa)}catch(ub){Ta=
622
+ !1,Oa={status:422,error:ub.description||ub.stack},/application\/json/.test(ra.getResponseHeader('Content-Type'))&&(Oa.error=JSON.parse(ra.responseText),Ta=!0),Ha.eventData.error=Oa,GINA_ENV_IS_DEV&&Ea(Oa,Ta),triggerEvent(gina,la,'error.'+ca,Oa)}else Ta=!1,Oa={status:ra.status,error:ra.responseText},/application\/json/.test(ra.getResponseHeader('Content-Type'))&&(Oa.error=JSON.parse(ra.responseText),Ta=!0),Ha.eventData.error=Oa,GINA_ENV_IS_DEV&&Ea(Oa,Ta),triggerEvent(gina,la,'error.'+ca,Oa),ha.isLoading&&
623
+ !ha.isOpen&&Va(ha)};ra.send();return{open:function(){var Oa=!1;addListener(gina,la,'loaded.'+ca,function(lb){lb.preventDefault();Oa||(Oa=!0,P(ha.id),ja(lb,ha),sb(ha.name))})}}}}function $a(k,w){var G=this&&this.id&&Ha.$popins[this.id]===this?this:U();if(G){var ha=!G.isOpen&&G.isLoading;if(!G.isOpen&&!ha)throw Error('Popin `'+G.name+'` is not open !');G.isRedirecting=typeof w!='undefined'?w:!1;w=ha?document.getElementById(G.id)||G.target:G.target;w.innerHTML=k.trim();Cb(G.name,!0);ja({target:w,type:'loaded.'+
624
+ G.id},G);if(!gb.options.useDialogMode&&/safari/i.test(window.navigator.userAgent))for(k=document.getElementsByTagName('link'),w=0;w<k.length;w++)if(k[w].getAttribute('rel')=='stylesheet'){var ca=k[w].getAttribute('href').split('?')[0];if(!/gina\.min\.css|gina\.css/.test(ca))continue;ca=ca+'?version='+(new Date).getMilliseconds();k[w].setAttribute('href',ca)}ha?sb(G.name):G.isRedirecting?triggerEvent(gina,Ha.target,'loaded.'+G.id,G):triggerEvent(gina,Ha.target,'open.'+G.id,G);if(gina&&typeof window.ginaToolbar!=
625
+ 'undefined'&&window.ginaToolbar)try{ginaToolbar.update('el-xhr',G.id)}catch(ta){throw ta;}}}function ib(k,w){var G=document.createElement('script');G.src=k;G.id='popin-script-'+q();w&&w.$headers.push({id:G.id});document.head.appendChild(G)}function Ya(k,w){var G=document.createElement('link');G.rel='stylesheet';G.href=k;G.id='popin-style-'+q();w&&w.$headers.push({id:G.id});document.head.appendChild(G)}function sb(k){var w=null;w=null;var G=typeof k!='undefined'?Ba(k):ma(this.id);if(!G)throw Error('Popin name `'+
626
+ k+'` not found !');w=G.id;w=document.getElementById(w);var ha=G.parentScripts,ca=w.getElementsByTagName('script');k=G.parentStyles;var ta=w.getElementsByTagName('link'),B=0,la=ca.length,va=gina.config.hostname.replace(/(https|http|):\/\//,'').replace(/:\d+$/,'');for(va=new RegExp(va+':\\d+|'+va);B<la;++B){if(typeof ca[B].src=='undefined'||ca[B].src=='')continue;let qa=ca[B].src.replace(/(https|http|):\/\//,'').replace(va,'').replace(/([?&])v=[0-9a-f]{10}(&|(?=#)|$)/,function(ra,Ta,Za){return Za===
627
+ '&'?Ta:''});ha.indexOf(qa)>-1||ib(ca[B].src,G)}B=0;for(la=ta.length;B<la;++B){if(typeof ta[B].href=='undefined'||ta[B].href=='')continue;ha=ta[B].href.replace(/(https|http|):\/\//,'').replace(va,'').replace(/([?&])v=[0-9a-f]{10}(&|(?=#)|$)/,function(qa,ra,Ta){return Ta==='&'?ra:''});k.indexOf(ha)>-1||Ya(ta[B].href,G)}gina.popinIsBinded||ja({target:w,type:'loaded.'+G.id},G);w.classList.add('gina-popin-is-active');gb.options.useDialogMode||(Ha.target.firstChild.classList.add('gina-popin-is-active'),
628
+ Ha.target.firstChild.classList.contains('gina-popin-is-active')&&removeListener(gina,Ha.target,'open.'+G.id));y(w);gb.options.useDialogMode&&!w.hasAttribute('open')&&(k=typeof G.modal=='boolean'?G.modal:!0,typeof w.showModal==='function'?k?w.showModal():(w.show(),S(G,w),x(w)):w.setAttribute('open',!0));wa(G,w);G.isOpen=!0;G.isLoading=!1;G.target=w;P(G.id);if(gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar)try{ginaToolbar.update('el-xhr',G.id)}catch(qa){throw qa;}triggerEvent(gina,
629
+ Ha.target,'open.'+G.id,G)}function Cb(k,w){var G=typeof k!='undefined'?Ba(k):U(),ha=null;if(!G&&typeof k!='undefined')throw Error('Popin `'+k+'` not found !');if(typeof G!='undefined'&&G!=null&&(ha=G.target,w=typeof w!='undefined'?w:!1,ha!=null&&ha.classList.contains('gina-popin-is-active'))){if(!w&&(gb.options.useDialogMode||Ha.target.firstChild.classList.remove('gina-popin-is-active'),ha.classList.remove('gina-popin-is-active'),!G.isInPageDialog)){ha.innerHTML='';var ca=G._contentUrl;pa(G);ca&&
630
+ setTimeout(function(){K(ca)},120)}ha.removeAttribute('data-gina-popin-loading');V.disarm(document.getElementById(G.openTrigger));if((k=G.options&&G.options.validator||Ib)&&k.$forms){w=G.$forms.slice();ha=G.$forms.length=0;for(var ta=w.length;ha<ta;++ha){var B=k.$forms[w[ha]];if(typeof B!='undefined')try{B.destroy()}catch(la){typeof console!='undefined'&&console.warn&&console.warn('[gina] popin teardown: destroy() failed for form `'+w[ha]+'`',la)}}}gina.popinIsBinded=!1;removeListener(gina,G.target,
631
+ 'loaded.'+G.id)}}function qb(k){if(typeof k=='undefined'&&(/^true$/.test(this.isOpen)||/^true$/.test(this.isLoading))){k=this.name;var w=this}else{w=Ba(k)||U();if(!w)return;k=w.name}if(!w&&typeof k!='undefined')throw Error('Popin `'+k+'` not found !');if(!w.isOpen&&w.isLoading)w.isRedirecting||Va(w);else if(w.isOpen&&typeof w!='undefined'&&w!=null&&!w.isRedirecting){var G=w.target;var ha=document.getElementById(w.openTrigger)||null;typeof G.close==='function'?G.close():G.removeAttribute('open');removeListener(gina,
632
+ w.target,'ready.'+Ha.id);w.hasForm&&(w.hasForm=!1);if(G!=null&&G.classList.contains('gina-popin-is-active')){Cb(k);w.isOpen=!1;gina.popinIsBinded=!1;GINA_ENV_IS_DEV&&gina&&typeof window.ginaToolbar!='undefined'&&window.ginaToolbar&&ginaToolbar.restore();P(null);if(w.$headers.length>0){k=0;var ca=w.$headers.length;try{for(;k<ca;++k)document.getElementById(w.$headers[k].id).remove()}catch(B){console.warn('Could not remove script `'+w.$headers[k].id+'`\n'+B.stack)}w.$headers=[]}document.body.removeAttribute('data-gina-popin-scroll-lock');
633
+ G&&G.__ginaOnKeydown&&(G.removeEventListener('keydown',G.__ginaOnKeydown),G.__ginaOnKeydown=null);k=document.querySelectorAll('[data-gina-popin-inert]');ca=0;for(var ta=k.length;ca<ta;++ca)k[ca].removeAttribute('inert'),k[ca].removeAttribute('data-gina-popin-inert');ha&&(/^A$/i.test(ha.tagName)?ha.removeAttribute('aria-disabled',!0):ha.removeAttribute('disabled',!0),V.disarm(ha),typeof ha.focus=='function'&&ha.focus());G.removeAttribute('data-gina-popin-loading');triggerEvent(gina,w.target,'close.'+
634
+ w.id,w)}}}function Jb(k){var w=typeof k!='undefined'?Ba(k):U(),G;if(!w&&typeof k!='undefined')throw Error('Popin `'+k+'` not found !');if(w){var ha=w.id;k=w.name;if(w.isOpen||w.isLoading)w.isRedirecting=!1,qb(k);(G=document.getElementById(ha))&&G.remove();removeListener(gina,w.target,'loaded.'+ha);removeListener(gina,w.target,'ready.'+ha);removeListener(gina,w.target,'open.'+ha);removeListener(gina,w.target,'close.'+ha);delete Ha.$popins[ha];w=da.indexOf(k);w>-1&&da.splice(w,1);(typeof gina.popin!=
635
+ 'undefined'&&gina.popin?gina.popin.activePopinId:Ha.activePopinId)===ha&&P(null);triggerEvent(gina,Ha.target,'destroy.'+ha,{name:k,id:ha})}}function Mb(k,w){if(typeof w!='object')throw Error('`options` must be an object');k.options=D(w,gb.options);k.id='gina-popin-'+Ha.id+'-'+k.options.name;if(typeof Ha.$popins[k.id]=='undefined'){if(typeof k.options.name!='string'||k.options.name=='')throw Error('`options.name` can not be left `empty` or `undefined`');if(da.indexOf(k.options.name)>-1)throw Error('`popin '+
636
+ k.options.name+'` already exists !');da.push(k.options.name);typeof k.options.validator!='undefined'&&(Ib=k.options.validator,k.validateFormById=Ib.validateFormById);k.options['class']='gina-popin-container '+k.options['class'];k.name=k.options.name;k.target=Ha.target;k.load=Ka;k.loadContent=$a;k.open=sb;k.close=qb;GINA_ENV_IS_DEV&&(k.updateToolbar=Ea);k.parentScripts=[];k.parentStyles=[];w=gina.config.hostname.replace(/(https|http|):\/\//,'').replace(/:\d+$/,'');w=new RegExp(w+':\\d+|'+w);var G=
637
+ document.getElementsByTagName('script');for(let ca=0,ta=G.length;ca<ta;ca++){if(!G[ca].src||G[ca].src=='')continue;var ha=G[ca].src.replace(/(https|http|):\/\//,'').replace(w,'').replace(/([?&])v=[0-9a-f]{10}(&|(?=#)|$)/,function(B,la,va){return va==='&'?la:''});k.parentScripts[ca]=ha}G=document.getElementsByTagName('link');for(let ca=0,ta=G.length;ca<ta;ca++){if(typeof G[ca].rel=='undefined'||!/stylesheet/i.test(G[ca].rel))continue;ha=G[ca].href.replace(/(https|http|):\/\//,'').replace(w,'').replace(/([?&])v=[0-9a-f]{10}(&|(?=#)|$)/,
638
+ function(B,la,va){return va==='&'?la:''});k.parentStyles[ca]=ha}Ha.$popins[k.id]=k;Ua(k)}}this.plugin='popin';var rb='init loaded ready open close click destroy success error progress'.split(' ');registerEvents(this.plugin,rb);var gb={options:{name:void 0,'class':'gina-popin-default',useDialogMode:!0,cancelOnOverlayClick:!1,preOpen:!1,loadingShell:null,modal:null},authorizedEvents:['ready','error'],events:{}};Z&&typeof Z.modal!='undefined'&&(gb.options.modal=Z.modal);var Ha={plugin:this.plugin,id:'gina-popins-'+
639
+ q(),on,eventData:{},$popins:aa,activePopinId:null,getActivePopin:null,getPopinContaining:null,target:document,isReady:!1,initialized:!1},Fb={plugin:this.plugin,on,eventData:{},target:document,name:null,load:null,loadContent:null,open:null,isOpen:!1,isLoading:!1,_loadSeq:0,_loadXhr:null,isRedirecting:!1,close:null,$forms:[],hasForm:!1,$headers:[]},Ib=null,da=[],xa=new RegExp('^popin\\.click\\.gina-popin-'+Ha.id),ia=function(){var k=document.createElement('div');k.id=Ha.id;k.setAttribute('id',Ha.id);
640
+ k.setAttribute('class','gina-popins');if(!gb.options.useDialogMode){var w=document.createElement('div');w.setAttribute('id','gina-popins-overlay');w.setAttribute('class','gina-popins-overlay');k.appendChild(w)}document.body.appendChild(k);Ha.target=k;Ha.on=on;gina.popinContainer=Ha.id},C=function(k,w,G){addListener(gina,k,'click',function(ha){cancelEvent(ha);triggerEvent(gina,w,G)})},P=function(k){Ha.activePopinId=k;typeof gina.popin!='undefined'&&gina.popin&&(gina.popin.activePopinId=k)},ma=function(k){return typeof Ha.$popins[k]!=
641
+ 'undefined'?Ha.$popins[k]:null},Ba=function(k){var w=null,G;for(G in Ha.$popins)if(Ha.$popins[G].name===k){w=Ha.$popins[G];break}return w},Ua=function(k,w){w=document.querySelectorAll('[data-gina-popin-name]');var G=null,ha=null,ca=null,ta=null,B=ha=null,la=null;B=0;for(la=w.length;B<la;++B){G=w[B];ha=G.getAttribute('data-gina-popin-name');G.tagName=='A'&&(ta=G.getAttribute('href'),ta==''||ta=='#'||/#/.test(ta))&&(ta=null);ta||typeof G.getAttribute('data-gina-popin-url')=='undefined'||(ta=G.getAttribute('data-gina-popin-url'));
642
+ if(!ta)throw Error('Found `data-gina-popin-name` without `url` !');G.url||(G.url=ta);G.popinName||(G.popinName=ha);if(ha==k.name&&(ca=G.id||G.getAttribute('id')||null,ha='popin.click.gina-popin-'+Ha.id+'-'+q()+'-'+ha,ca&&RegExp('^popin.click.gina-popin-').test(ca)&&(ha=ca),!gina.events[ha])){G.id=ha;G.setAttribute('id',ha);addListener(gina,G,ha,function(qa){cancelEvent(qa);var ra=qa.currentTarget;if(('disabled'in ra||ra.getAttribute('disabled')==null||ra.getAttribute('disabled')=='false')&&ra.getAttribute('aria-disabled')!=
643
+ 'true'){k.openTrigger=qa.currentTarget.id||qa.currentTarget.getAttribute('id');var Ta={isSynchrone:!1,withCredentials:!1};Ta=D(k.options,Ta);var Za=this.getAttribute('data-gina-popin-url')||this.getAttribute('href');if(!Za)throw Error('Popin `url` not defined, please check value for `data-gina-popin-url`');qa=function(){var mb=!1;addListener(gina,k.target,'loaded.'+k.id,function(vb){vb.preventDefault();mb||(mb=!0,console.debug('active popin should be ',k.id),P(k.id),ja(vb,k),k.isOpen||sb(k.name))});
644
+ Ka(k.name,Za,Ta)};var Oa=!0,lb=!1;!/^false$/i.test(this.getAttribute('data-gina-dialog-preload'))&&ua(Za,k,qa,function(){Oa=!1;lb&&(lb=!1,Ga(ra))})?Oa&&(ba(ra),lb=!0):qa()}});ca=G.childNodes;var va=0;lLen=ca.length;if(lLen>0)for(;va<lLen;++va)typeof ca[va].tagName!='undefined'&&C(ca[va],G,ha)}}addListener(gina,document,'click',function(qa){if(!('disabled'in qa.target)&&qa.target.getAttribute('disabled')!=null&&qa.target.getAttribute('disabled')!='false')return!1;if(/^popin\.close\./.test(qa.target.id)){cancelEvent(qa);
645
+ var ra=qa.target.id;triggerEvent(gina,qa.target,ra,qa.detail)}/^popin\.click\./.test(qa.target.id)&&(cancelEvent(qa),ra=qa.target.id,xa.test(ra)&&triggerEvent(gina,qa.target,ra,qa.detail))});gina.popinIsBinded=!1},cb={url:'',method:'GET',isSynchrone:!1,withCredentials:!0,headers:{'X-Requested-With':'XMLHttpRequest'}};gina.hasPopinHandler?(Ha.target=document.getElementById(gina.popinContainer),Ha.on=on):ia();M||new H(function(k,w){if(k)throw k;M=w});return function(k){Ha.getPopinById=ma;Ha.getPopinByName=
646
+ Ba;Ha.load=Ka;Ha.loadContent=$a;Ha.getActivePopin=U;Ha.getPopinContaining=Y;Ha.open=sb;Ha.close=qb;Ha.destroy=Jb;ya();fa();Ia();addListener(gina,Ha.target,'init.'+Ha.id,function(w){w=null;typeof Ha.$popins['gina-popin-'+Ha.id+'-'+k.name]=='undefined'&&(w=D({},Fb),Mb(w,k));Ha.isReady=!0;gina.hasPopinHandler=!0;typeof gina.popin!='undefined'&&gina.popin||(gina.popin=Ha);triggerEvent(gina,Ha.target,'ready.'+Ha.id,w)});Ha.initialized=!0;return Ha}(Z)}});
647
+ function StoragePlugin(f){function q(Z){aa=JSON.parse(E.getItem(this.bucket));typeof aa[Z]=='undefined'&&(aa[Z]=[],E.setItem(this.bucket,JSON.stringify(aa)),aa=JSON.parse(E.getItem(this.bucket)));A[Z]={_collection:Z,_bucket:this.bucket};A[Z]=H(A[Z],r);return A[Z]}function F(Z){if(typeof Z!=='object')throw Error('filter must be an object');var U=aa[this._collection],Y=Z.count(),v=0,L=null;if(Y==0)return null;for(var y in U)for(var x in Z){var S=typeof Z[x]!='boolean'?Z[x].toLocaleLowerCase():Z[x];
648
+ Z[x]&&l.indexOf(S)>-1&&S=='not null'&&typeof U[y][x]!='undefined'&&typeof U[y][x]!=='object'&&U[y][x]===Z[x]&&U[y][x]!='null'&&U[y][x]!='undefined'?L.indexOf(U[y][x])<0&&(++v,v===Y&&(L=U[y],L._index=y,L._collection=this._collection,L._bucket=this._bucket)):typeof U[y][x]!='undefined'&&typeof U[y][x]!=='object'&&U[y][x]===Z[x]&&(++v,v===Y&&(L=U[y],L._index=y,L._collection=this._collection,L._bucket=this._bucket,L._filter=Z))}L&&(L.save=n);return L}var H=H||require('lib/merge');q=q||require('lib/collection');
649
+ var M=M||require('lib/uuid'),V=V||require('helpers/dateFormat'),D={bucket:'default'},m={},E=null,A={},aa={},l=['not null'],W={bucket:void 0,drop:function(){E.removeItem(D.bucket);m=null;for(var Z in this)delete this[Z];return m},Collection:q},r={insert:function(Z){Z._id=Date.now().toString(36)+'-'+M(16);Z._createdAt=(new Date).format('isoDateTime');Z._updatedAt=(new Date).format('isoDateTime');aa[this._collection][aa[this._collection].length]=Z;E.setItem(this._bucket,JSON.stringify(aa))},find:function(Z,
650
+ U){if(!Z)return aa[this._collection];if(typeof Z!=='object')throw Error('filter must be an object');U=aa[this._collection];Z.count();var Y=0,v=[],L;for(L in U)for(var y in Z){var x=typeof Z[y]!='boolean'?Z[y].toLocaleLowerCase():Z[y];Z[y]&&l.indexOf(x)>-1&&x=='not null'&&typeof U[L][y]!='undefined'&&typeof U[L][y]!=='object'&&U[L][y]!='null'&&U[L][y]!='undefined'?v.indexOf(U[L][y])<0&&(v[Y]=U[L][y],++Y):typeof U[L][y]!='undefined'&&typeof U[L][y]!=='object'&&U[L][y]===Z[y]&&(v[Y]=U[L],++Y)}return v},
651
+ findOne:F,update:null,'delete':function(Z){if(typeof Z!=='object')throw Error('filter must be an object');var U=JSON.clone(aa[this._collection]),Y=0,v=[],L;for(L in U)for(var y in Z)Z[y]&&l.indexOf(Z[y].toLocaleLowerCase())>-1&&Z[y].toLowerCase()=='not null'&&typeof U[L][y]!='undefined'&&typeof U[L][y]!=='object'&&U[L][y]!='null'&&U[L][y]!='undefined'?v.indexOf(U[L][y])<0&&(v[Y]=U[L][y],delete aa[this._collection][L][y],++Y):typeof U[L][y]!='undefined'&&typeof U[L][y]!=='object'&&U[L][y]===Z[y]&&
652
+ (v[Y]=U[L],aa[this._collection].splice(L,1),++Y);return v.length>0?(E.setItem(this._bucket,JSON.stringify(aa)),!0):!1},drop:function(Z){if(typeof aa[this._collection]=='undefined')throw Error('Collection `'+Z+'` not found');delete A[this._collection];delete aa[this._collection];E.setItem(this._bucket,JSON.stringify(aa))}},n=function(Z){Z=Z||!1;try{var U=JSON.clone(aa),Y=this._index,v=this._collection,L=this._bucket,y=this._filter;this._updatedAt=(new Date).format('isoDateTime');U[v][Y]=H(U[v][Y],
653
+ this,!0);delete U[v][Y]._index;delete U[v][Y]._collection;delete U[v][Y]._bucket;delete U[v][Y].save;delete U[v][Y]._filter;if(Z&&typeof U[v][Y]=='object'){var x=function(X,g){for(var Q=0,ka=X.length;Q<ka;++Q)typeof g[Q]!='object'||typeof X[Q]=='undefined'||Array.isArray(X[Q])?Array.isArray(X[Q])?x(X[Q],g[Q]):typeof X[Q]=='undefined'&&delete g[Q]:S(X[Q],g[Q]);return g},S=function(X,g){for(var Q in g)typeof g[Q]!='object'||typeof X[Q]=='undefined'||Array.isArray(X[Q])?Array.isArray(X[Q])?x(X[Q],g[Q]):
654
+ typeof X[Q]=='undefined'&&delete g[Q]:S(X[Q],g[Q]);return g};Array.isArray(U[v][Y])?U[v][Y]=x(this,U[v][Y]):typeof U[v][Y]=='object'?U[v][Y]=S(this,U[v][Y]):typeof this[prop]=='undefined'&&delete U[v][Y]}aa[v][Y]=U[v][Y];E.setItem(L,JSON.stringify(aa));return F(y)}catch(X){throw X;}};(function(Z){if(!window.localStorage||window.localStorage&&!typeof window.localStorage.setItem=='undefined')throw Error('Make sure your browser supports `window.localStorage` to use Gina Storage. See: `https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API#Browser_compatibility`');
655
655
  if(typeof Z!='object'&&typeof Z!='undefined')throw Error('`options` must be an object');typeof Z=='undefined'&&(Z={});D=H(Z,D);E=window.localStorage;Z=D.bucket;if(!E.getItem(Z)&&Z!=void 0)E.setItem(Z,JSON.stringify(aa));else if(Z==void 0)throw Error('`bucket` name cannot be undefined');m.bucket=Z;m=H(m,W)})(f);return m}
656
656
  if(typeof module!=='undefined'&&module.exports){var merge=require('lib/merge');Collection=require('lib/collection');uuid=require('lib/uuid');module.exports=StoragePlugin}else typeof define==='function'&&define.amd&&define('gina/storage',['helpers/dateFormat','helpers/prototypes'],function(){return StoragePlugin});
657
- define('gina/nav',['require','lib/merge','lib/uuid','utils/events','utils/dom'],function(f){var q=f('lib/merge'),F=f('lib/uuid');f('utils/events');return function(H){this.plugin='nav';registerEvents(this.plugin,['init','ready','navigate','success','error']);var N={timeout:1E4},U={plugin:this.plugin,id:'gina-nav-'+F(),on,eventData:{},target:document,isReady:!1,initialized:!1},D=0,m=null,E=null,A=null,aa=null,l=!1,W=function(v,L){v=String(v).split(/\//);for(var y=[],x=0,R=v.length;x<R;++x){var X=v[x];
658
- if(X.indexOf(':')<0)y.push({lit:X});else{if(!/^:[-_a-zA-Z0-9]+$/.test(X))return null;X=X.substring(1);if(L.requirements&&typeof L.requirements[X]!='undefined'){a:{var g=String(L.requirements[X]);try{if(/^\//.test(g)){var V=g.match(/\/(.*)\//).pop(),fa=g.replace('/'+V+'/','');var ua=new RegExp(V,fa);break a}ua=new RegExp(g);break a}catch(qa){ua=null;break a}ua=void 0}if(!ua)return null;y.push({key:X,re:ua})}else if(L.param&&typeof L.param[X]!='undefined')y.push({key:X,re:null});else return null}}return y},
659
- r=function(){var v=window.gina&&window.gina.config?window.gina.config:null,L=v&&v.routing&&typeof v.routing=='object'?v.routing:null;if(!L)return null;if(A===L&&E)return E;v=v.bundle;var y=[],x;for(x in L){var R=L[x];if(R&&typeof R=='object'&&typeof R.param!='undefined'&&R.bundle==v){var X=String(R.method||''),g=/,/.test(X),V=X.replace(/\s+/g,'');if(g||/^(get|delete)$/i.test(V)){X=g?/(^|,)\s*get\s*(,|$)/i.test(X):/^get$/i.test(V);g=String(R.url).split(/,/g);V=[];for(var fa=0,ua=g.length;fa<ua;++fa)V.push(W(g[fa],
660
- R));y.push({rule:x,route:R,isGet:X,variants:V,rawUrl:String(R.url)})}}}E=y;A=L;return y},n=function(v){var L=r();if(!L)return null;try{var y=decodeURI(v)}catch(oa){y=v}for(var x=y.split(/\//),R=0,X=L.length;R<X;++R){var g=L[R];if(v===g.rawUrl||y===g.rawUrl)return{rule:g.rule,route:g.route,isGet:g.isGet};for(var V=0,fa=g.variants.length;V<fa;++V){var ua=g.variants[V];if(ua&&ua.length===x.length){for(var qa=!0,K=0,ha=ua.length;K<ha;++K)if(typeof ua[K].lit!='undefined'){if(ua[K].lit!==x[K]){qa=!1;break}}else{if(!x[K]){qa=
661
- !1;break}if(ua[K].re&&!ua[K].re.test(x[K])){qa=!1;break}}if(qa)return{rule:g.rule,route:g.route,isGet:g.isGet}}}}return null},Z=function(v,L,y){U.eventData.error=y||{};triggerEvent(gina,U.target,'error.'+U.id,U.eventData.error);L?window.location.reload():window.location.href=v},T=function(v,L){if(v&&typeof v=='string')if(U.isReady&&U.target!==document){var y=L&&L.isPopState?!0:!1,x=++D;if(m&&m.readyState!==4)try{m.abort()}catch(X){}U.eventData.navigate={url:v,isPopState:y};triggerEvent(gina,U.target,
662
- 'navigate.'+U.id,U.eventData.navigate);var R=new XMLHttpRequest;m=R;R.open('GET',v);R.setRequestHeader('X-Gina-Navigate','fragment');R.setRequestHeader('X-Requested-With','XMLHttpRequest');R.timeout=N.timeout;R.onreadystatechange=function(){if(R.readyState===4&&x===D){var X=R.status;if(/^2/.test(String(X))){var g=R.getResponseHeader('Content-Type')||'';if(/application\/json/.test(g)){var V=null;try{V=JSON.parse(R.responseText)}catch(ua){}V&&typeof V.location!='undefined'&&V.location?window.location.href=
663
- V.location:Z(v,y,{status:X,error:'unexpected JSON answer to a fragment request'})}else if(g=R.getResponseHeader('Vary')||'',/x-gina-navigate/i.test(g)){g=R.responseText;X=U.target;X.innerHTML=typeof g=='string'?g.trim():'';if(g=typeof X.querySelector=='function'?X.querySelector('[data-gina-nav-title]'):null)if(g=g.getAttribute('data-gina-nav-title'))document.title=g;if(!y){try{var fa=window.history.state||{};fa.ginaNav=!0;fa.scroll=[window.pageXOffset||0,window.pageYOffset||0];window.history.replaceState(fa,
664
- '',window.location.href)}catch(ua){}try{window.history.pushState({ginaNav:!0},'',v)}catch(ua){}}aa=window.location.pathname+window.location.search;try{X.getAttribute('tabindex')||X.setAttribute('tabindex','-1'),X.focus({preventScroll:!0})}catch(ua){try{X.focus()}catch(qa){}}(fa=y&&L&&L.scroll?L.scroll:null)?window.scrollTo(fa[0]||0,fa[1]||0):(fa=(fa=v.indexOf('#')>-1?v.substring(v.indexOf('#')+1):null)?document.getElementById(fa):null)&&typeof fa.scrollIntoView=='function'?fa.scrollIntoView():window.scrollTo(0,
665
- 0);try{gina.hasPopinHandler&&gina.popin&&typeof gina.popin.getActivePopin=='function'&&(V=gina.popin.getActivePopin())&&V.isOpen&&typeof gina.popin.close=='function'&&gina.popin.close(V.name)}catch(ua){}bindRegion(X);U.eventData.success={url:v,target:X,isPopState:y};triggerEvent(gina,U.target,'success.'+U.id,U.eventData.success)}else Z(v,y,{status:X,error:'response is not negotiated (no `Vary: X-Gina-Navigate`)'})}else Z(v,y,{status:X||0,error:R.statusText||'network error or timeout'})}};R.send()}else window.location.href=
666
- v},Y=function(){l||(l=!0,addListener(gina,document,'click',function(v){try{if(!(v.defaultPrevented||typeof v.button=='number'&&v.button!==0||v.ctrlKey||v.metaKey||v.shiftKey||v.altKey)){var L=v.target&&typeof v.target.closest=='function'?v.target.closest('a[href]'):null;if(L&&L.getAttribute('data-gina-link')==null&&L.getAttribute('data-gina-link-url')==null&&L.getAttribute('data-gina-dialog')==null&&L.getAttribute('data-gina-dialog-src')==null&&L.getAttribute('data-gina-popin-name')==null&&L.getAttribute('data-gina-popin-url')==
667
- null&&!/^false$/i.test(L.getAttribute('data-gina-nav'))){var y=L.getAttribute('target');if((!y||/^_self$/i.test(y))&&L.getAttribute('download')==null){var x=L.getAttribute('href');if(x&&!/^#/.test(x)&&L.protocol===window.location.protocol&&L.host===window.location.host&&(L.pathname!==window.location.pathname||L.search!==window.location.search||!L.hash)){var R=n(L.pathname);R&&R.route.negotiate===!0&&R.isGet&&(cancelEvent(v),T(L.pathname+L.search+L.hash))}}}}}catch(X){console.warn('[gina][nav] click interception skipped: '+
668
- (X.message||X))}}),window.addEventListener('popstate',function(v){try{var L=window.location.pathname+window.location.search;if(L!==aa){var y=v.state;y&&y.ginaNav?T(L+window.location.hash,{isPopState:!0,scroll:y.scroll||null}):window.location.reload()}}catch(x){window.location.reload()}}))};return function(v){U.navigate=T;U.matchUrl=n;U.on('init',function(L){N=q(v||{},N);L=null;try{L=document.querySelector('[data-gina-nav]:not([data-gina-nav="false"])')}catch(x){}if(L){U.target=L;aa=window.location.pathname+
669
- window.location.search;try{window.history&&'scrollRestoration'in window.history&&(window.history.scrollRestoration='manual');var y=window.history.state||{};y.ginaNav=!0;window.history.replaceState(y,'',window.location.href)}catch(x){}Y();U.isReady=!0;gina.hasNavHandler=!0;typeof gina.nav!='undefined'&&gina.nav||(gina.nav=U)}else console.warn('[gina][nav] no [data-gina-nav] region found \u2014 navigation interception stays off'),U.isReady=!0;triggerEvent(gina,U.target,'ready.'+U.id,U)});U.initialized=
670
- !0;return U}(H)}});typeof Object.assign!=='function'&&Object.defineProperty(Object,'assign',{value:function(f,q){if(f===null||f===void 0)throw new TypeError('Cannot convert undefined or null to object');for(var F=Object(f),H=1;H<arguments.length;H++){var N=arguments[H];if(N!==null&&N!==void 0)for(var U in N)Object.prototype.hasOwnProperty.call(N,U)&&(F[U]=N[U])}return F},writable:!0,configurable:!0});
671
- if(typeof JSON.clone=='undefined'){var clone=function(f,q){if(f==null||typeof f!='object'||f.constructor!=Object&&f.constructor!=Array)return f;if(f.constructor==Date||f.constructor==RegExp||f.constructor==Function||f.constructor==String||f.constructor==Number||f.constructor==Boolean)return new f.constructor(f);q=q||new f.constructor;for(var F=0,H=Object.getOwnPropertyNames(f).length||0,N=Object.keys(f);F<H;)q[N[F]]=typeof q[N[F]]=='undefined'?clone(f[N[F]],null):q[N[F]],F++;return q};JSON.clone=
657
+ define('gina/nav',['require','lib/merge','lib/uuid','utils/events','utils/dom'],function(f){var q=f('lib/merge'),F=f('lib/uuid');f('utils/events');return function(H){this.plugin='nav';registerEvents(this.plugin,['init','ready','navigate','success','error']);var M={timeout:1E4},V={plugin:this.plugin,id:'gina-nav-'+F(),on,eventData:{},target:document,isReady:!1,initialized:!1},D=0,m=null,E=null,A=null,aa=null,l=!1,W=function(v,L){v=String(v).split(/\//);for(var y=[],x=0,S=v.length;x<S;++x){var X=v[x];
658
+ if(X.indexOf(':')<0)y.push({lit:X});else{if(!/^:[-_a-zA-Z0-9]+$/.test(X))return null;X=X.substring(1);if(L.requirements&&typeof L.requirements[X]!='undefined'){a:{var g=String(L.requirements[X]);try{if(/^\//.test(g)){var Q=g.match(/\/(.*)\//).pop(),ka=g.replace('/'+Q+'/','');var ua=new RegExp(Q,ka);break a}ua=new RegExp(g);break a}catch(pa){ua=null;break a}ua=void 0}if(!ua)return null;y.push({key:X,re:ua})}else if(L.param&&typeof L.param[X]!='undefined')y.push({key:X,re:null});else return null}}return y},
659
+ r=function(){var v=window.gina&&window.gina.config?window.gina.config:null,L=v&&v.routing&&typeof v.routing=='object'?v.routing:null;if(!L)return null;if(A===L&&E)return E;v=v.bundle;var y=[],x;for(x in L){var S=L[x];if(S&&typeof S=='object'&&typeof S.param!='undefined'&&S.bundle==v){var X=String(S.method||''),g=/,/.test(X),Q=X.replace(/\s+/g,'');if(g||/^(get|delete)$/i.test(Q)){X=g?/(^|,)\s*get\s*(,|$)/i.test(X):/^get$/i.test(Q);g=String(S.url).split(/,/g);Q=[];for(var ka=0,ua=g.length;ka<ua;++ka)Q.push(W(g[ka],
660
+ S));y.push({rule:x,route:S,isGet:X,variants:Q,rawUrl:String(S.url)})}}}E=y;A=L;return y},n=function(v){var L=r();if(!L)return null;try{var y=decodeURI(v)}catch(na){y=v}for(var x=y.split(/\//),S=0,X=L.length;S<X;++S){var g=L[S];if(v===g.rawUrl||y===g.rawUrl)return{rule:g.rule,route:g.route,isGet:g.isGet};for(var Q=0,ka=g.variants.length;Q<ka;++Q){var ua=g.variants[Q];if(ua&&ua.length===x.length){for(var pa=!0,K=0,fa=ua.length;K<fa;++K)if(typeof ua[K].lit!='undefined'){if(ua[K].lit!==x[K]){pa=!1;break}}else{if(!x[K]){pa=
661
+ !1;break}if(ua[K].re&&!ua[K].re.test(x[K])){pa=!1;break}}if(pa)return{rule:g.rule,route:g.route,isGet:g.isGet}}}}return null},Z=function(v,L,y){V.eventData.error=y||{};triggerEvent(gina,V.target,'error.'+V.id,V.eventData.error);L?window.location.reload():window.location.href=v},U=function(v,L){if(v&&typeof v=='string')if(V.isReady&&V.target!==document){var y=L&&L.isPopState?!0:!1,x=++D;if(m&&m.readyState!==4)try{m.abort()}catch(X){}V.eventData.navigate={url:v,isPopState:y};triggerEvent(gina,V.target,
662
+ 'navigate.'+V.id,V.eventData.navigate);var S=new XMLHttpRequest;m=S;S.open('GET',v);S.setRequestHeader('X-Gina-Navigate','fragment');S.setRequestHeader('X-Requested-With','XMLHttpRequest');S.timeout=M.timeout;S.onreadystatechange=function(){if(S.readyState===4&&x===D){var X=S.status;if(/^2/.test(String(X))){var g=S.getResponseHeader('Content-Type')||'';if(/application\/json/.test(g)){var Q=null;try{Q=JSON.parse(S.responseText)}catch(ua){}Q&&typeof Q.location!='undefined'&&Q.location?window.location.href=
663
+ Q.location:Z(v,y,{status:X,error:'unexpected JSON answer to a fragment request'})}else if(g=S.getResponseHeader('Vary')||'',/x-gina-navigate/i.test(g)){g=S.responseText;X=V.target;X.innerHTML=typeof g=='string'?g.trim():'';if(g=typeof X.querySelector=='function'?X.querySelector('[data-gina-nav-title]'):null)if(g=g.getAttribute('data-gina-nav-title'))document.title=g;if(!y){try{Q=window.history.state||{},Q.ginaNav=!0,Q.scroll=[window.pageXOffset||0,window.pageYOffset||0],window.history.replaceState(Q,
664
+ '',window.location.href)}catch(ua){}try{window.history.pushState({ginaNav:!0},'',v)}catch(ua){}}aa=window.location.pathname+window.location.search;try{if(gina.hasPopinHandler&&gina.popin&&typeof gina.popin.getActivePopin=='function'){var ka=gina.popin.getActivePopin();ka&&ka.isOpen&&typeof gina.popin.close=='function'&&gina.popin.close(ka.name)}}catch(ua){}try{X.getAttribute('tabindex')||X.setAttribute('tabindex','-1'),X.focus({preventScroll:!0})}catch(ua){try{X.focus()}catch(pa){}}(Q=y&&L&&L.scroll?
665
+ L.scroll:null)?window.scrollTo(Q[0]||0,Q[1]||0):(Q=(Q=v.indexOf('#')>-1?v.substring(v.indexOf('#')+1):null)?document.getElementById(Q):null)&&typeof Q.scrollIntoView=='function'?Q.scrollIntoView():window.scrollTo(0,0);bindRegion(X);V.eventData.success={url:v,target:X,isPopState:y};triggerEvent(gina,V.target,'success.'+V.id,V.eventData.success)}else Z(v,y,{status:X,error:'response is not negotiated (no `Vary: X-Gina-Navigate`)'})}else Z(v,y,{status:X||0,error:S.statusText||'network error or timeout'})}};
666
+ S.send()}else window.location.href=v},Y=function(){l||(l=!0,addListener(gina,document,'click',function(v){try{if(!(v.defaultPrevented||typeof v.button=='number'&&v.button!==0||v.ctrlKey||v.metaKey||v.shiftKey||v.altKey)){var L=v.target&&typeof v.target.closest=='function'?v.target.closest('a[href]'):null;if(L&&L.getAttribute('data-gina-link')==null&&L.getAttribute('data-gina-link-url')==null&&L.getAttribute('data-gina-dialog')==null&&L.getAttribute('data-gina-dialog-src')==null&&L.getAttribute('data-gina-popin-name')==
667
+ null&&L.getAttribute('data-gina-popin-url')==null&&!/^false$/i.test(L.getAttribute('data-gina-nav'))){var y=L.getAttribute('target');if((!y||/^_self$/i.test(y))&&L.getAttribute('download')==null){var x=L.getAttribute('href');if(x&&!/^#/.test(x)&&L.protocol===window.location.protocol&&L.host===window.location.host&&(L.pathname!==window.location.pathname||L.search!==window.location.search||!L.hash)){var S=n(L.pathname);S&&S.route.negotiate===!0&&S.isGet&&(cancelEvent(v),U(L.pathname+L.search+L.hash))}}}}}catch(X){console.warn('[gina][nav] click interception skipped: '+
668
+ (X.message||X))}}),window.addEventListener('popstate',function(v){try{var L=window.location.pathname+window.location.search;if(L!==aa){var y=v.state;y&&y.ginaNav?U(L+window.location.hash,{isPopState:!0,scroll:y.scroll||null}):window.location.reload()}}catch(x){window.location.reload()}}))};return function(v){V.navigate=U;V.matchUrl=n;V.on('init',function(L){M=q(v||{},M);L=null;try{L=document.querySelector('[data-gina-nav]:not([data-gina-nav="false"])')}catch(x){}if(L){V.target=L;aa=window.location.pathname+
669
+ window.location.search;try{window.history&&'scrollRestoration'in window.history&&(window.history.scrollRestoration='manual');var y=window.history.state||{};y.ginaNav=!0;window.history.replaceState(y,'',window.location.href)}catch(x){}Y();V.isReady=!0;gina.hasNavHandler=!0;typeof gina.nav!='undefined'&&gina.nav||(gina.nav=V)}else console.warn('[gina][nav] no [data-gina-nav] region found \u2014 navigation interception stays off'),V.isReady=!0;triggerEvent(gina,V.target,'ready.'+V.id,V)});V.initialized=
670
+ !0;return V}(H)}});typeof Object.assign!=='function'&&Object.defineProperty(Object,'assign',{value:function(f,q){if(f===null||f===void 0)throw new TypeError('Cannot convert undefined or null to object');for(var F=Object(f),H=1;H<arguments.length;H++){var M=arguments[H];if(M!==null&&M!==void 0)for(var V in M)Object.prototype.hasOwnProperty.call(M,V)&&(F[V]=M[V])}return F},writable:!0,configurable:!0});
671
+ if(typeof JSON.clone=='undefined'){var clone=function(f,q){if(f==null||typeof f!='object'||f.constructor!=Object&&f.constructor!=Array)return f;if(f.constructor==Date||f.constructor==RegExp||f.constructor==Function||f.constructor==String||f.constructor==Number||f.constructor==Boolean)return new f.constructor(f);q=q||new f.constructor;for(var F=0,H=Object.getOwnPropertyNames(f).length||0,M=Object.keys(f);F<H;)q[M[F]]=typeof q[M[F]]=='undefined'?clone(f[M[F]],null):q[M[F]],F++;return q};JSON.clone=
672
672
  clone}if(typeof JSON.escape=='undefined'){var escape=function(f){try{return f.replace(/\n/g,'\\n').replace(/\r/g,'\\r').replace(/\t/g,'\\t')}catch(q){throw q;}};JSON.escape=escape}define('utils/polyfill',function(){});
673
- function Inherits(f,q){return function(F,H){var N=typeof F=='undefined'||typeof H=='undefined'?"inherits(a, b): neither [ a ] nor [ b ] can't be undefined or null":!1;if(N)throw Error(N);N=function(){return function(){this&&(this.name||(this.name=F.name),H.apply(this,arguments),F.apply(this,arguments))}}(F,H);F.prototype==void 0&&(F.prototype={});H.prototype==void 0&&(H.prototype={});F.prototype=Object.create(H.prototype,{});N.prototype=Object.create(F.prototype,{});return N}}
673
+ function Inherits(f,q){return function(F,H){var M=typeof F=='undefined'||typeof H=='undefined'?"inherits(a, b): neither [ a ] nor [ b ] can't be undefined or null":!1;if(M)throw Error(M);M=function(){return function(){this&&(this.name||(this.name=F.name),H.apply(this,arguments),F.apply(this,arguments))}}(F,H);F.prototype==void 0&&(F.prototype={});H.prototype==void 0&&(H.prototype={});F.prototype=Object.create(H.prototype,{});M.prototype=Object.create(F.prototype,{});return M}}
674
674
  typeof module!=='undefined'&&module.exports?module.exports=Inherits():typeof define==='function'&&define.amd&&define('lib/inherits',[],function(){return Inherits()});
675
- function Collection(f,q){var F=typeof module!=='undefined'&&module.exports?!1:!0,H=F?require('lib/uuid'):require('../../../lib/uuid'),N=F?require('lib/merge'):require('../../../lib/merge'),U={isCaseSensitive:{false:{re:'^%s$',modifiers:'i'},true:{re:'^%s$'}},skipEval:!1},D=!1,m=!1,E=null;F={useLocalStorage:!1,locale:'en',searchOptionRules:U};q=typeof q=='object'?N(q,F):F;var A=['not null'],aa=/^\s*(new\s+Date\("[^"]*"\)|"(?:\\.|[^"\\])*"|-?\d+(?:\.\d+)?)\s*(===|!==|<=|>=|==|!=|<|>)\s*(new\s+Date\("[^"]*"\)|"(?:\\.|[^"\\])*"|-?\d+(?:\.\d+)?)\s*$/,
676
- l=function(y){var x=y.match(/^\s*new\s+Date\("([^"]*)"\)\s*$/);if(x)return new Date(x[1]);x=y.replace(/^\s+|\s+$/g,'');if(/^"(?:\\.|[^"\\])*"$/.test(x))return JSON.parse(x);var R=Number(x);if(!isNaN(R)&&x!=='')return R;throw Error('Invalid operand: `'+y+'`');},W=/^(===|!==|<=|>=|==|!=|<|>)/,r=function(y,x){x=String(x);var R=x.match(W);if(!R)return JSON.stringify(String(y))+x;R=R[1];x=x.slice(R.length).replace(/^\s+|\s+$/g,'');/^"(?:\\.|[^"\\])*"$/.test(x)&&(x=JSON.parse(x));return JSON.stringify(String(y))+
677
- R+JSON.stringify(x)},n=function(y){var x=typeof y=='string'?y.match(aa):null;if(!x)throw Error('Could not evaluate condition `'+y+'`.\n(grammar: <operand><op><operand>; operand \u2208 number | "string" | new Date("..."); op \u2208 === !== == != < > <= >=)');try{var R=l(x[1]),X=x[2],g=l(x[3]);if(X==='<'||X==='>'||X==='<='||X==='>=')R instanceof Date&&(R=R.getTime()),g instanceof Date&&(g=g.getTime());switch(X){case '===':return R===g;case '!==':return R!==g;case '==':return R==g;case '!=':return R!=
678
- g;case '<':return R<g;case '>':return R>g;case '<=':return R<=g;case '>=':return R>=g}}catch(V){throw Error('Could not evaluate condition `'+y+'`.\n'+V.stack);}};if(typeof f=='undefined'||f==''||f==null)f=[];if(!Array.isArray(f))throw Error('`new Collection([content] [, options] )`: `content` argument must be an Array !');f=f?JSON.clone(f):[];for(var Z=[],T=F=0,Y=f.length;T<Y;++T)f[T]||(f[T]={}),typeof f[T]._uuid!='undefined'?f[T]._hasItsOwnUuid=!0:f[T]._uuid=H(16),Z[F]=f[T]._uuid,++F;var v=f;v.setSearchOption=
679
- function(){if(!arguments.length)throw Error('searchOption cannot be left blank');if(arguments.length>3||arguments.length<3&&arguments.length>1)throw Error('argument length mismatch');var y=0,x=arguments.length;if(x==1){if(typeof arguments[0]!='object')throw Error('searchOption must be an object');for(var R in arguments[0])if(typeof U[R]=='undefined')throw Error(arguments[1]+' is not an allowed searchOption !');E=arguments[0]}else for(E||={};y<x;++y){if(typeof U[arguments[1]]=='undefined')throw Error(arguments[1]+
680
- ' is not an allowed searchOption !');typeof E[arguments[0]]=='undefined'&&(E[arguments[0]]={});/true|false/i.test(arguments[2])?E[arguments[0]][arguments[1]]=/true/i.test(arguments[2])?!0:!1:E[arguments[0]][arguments[1]]=arguments[2]}return v};v.find=function(){D=!1;typeof arguments[arguments.length-1]=='boolean'&&(D=arguments[arguments.length-1],delete arguments[arguments.length-1],--arguments.length);for(var y=0,x=arguments.length,R=null,X=null;y<x;++y)if((R=arguments[y])&&typeof R=='object'&&!Array.isArray(R))for(X in R)if(typeof R[X]==
681
- 'undefined')throw Error('filter `'+X+'` cannot be left undefined');R=y=x=R=null;try{x=JSON.stringify(arguments),y=JSON.parse(x),R=y.count()}catch(Ea){throw Error('filter must be an object\n'+Ea.stack);}if(typeof y!='undefined'&&R>0){R>1&&(D=!0);R=x=null;X=0;var g=Array.isArray(this)?this:JSON.clone(f),V=[],fa='',ua=null,qa=E,K=q.searchOptionRules,ha=null,oa=[],Ja=function(Ea,Da,wa,Va,ba){E&&typeof E[Da]!='undefined'&&(ba=N(E,ba));if(Ea===null&&wa===null)++Va;else if(Ea&&A.indexOf(fa)>-1&&fa=='not null'&&
682
- typeof wa!='undefined'&&typeof wa!=='object'&&wa!='null'&&wa!='undefined')V.indexOf(wa)<0&&++Va;else if(typeof wa!='undefined'&&typeof wa!=='object'&&/(<|>|=)/.test(Ea)&&!/undefined|function/.test(typeof wa)&&!ba.skipEval)Da=wa+Ea,typeof Ea=='string'&&typeof wa=='string'&&(Da=r(wa,Ea)),/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/.test(wa)&&/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/.test(Ea)?n(wa.replace(/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/,'new Date("$&")')+
683
- Ea.replace(/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/,'new Date("$&")'))&&++Va:n(Da)&&++Va;else if(typeof wa!='undefined'&&typeof wa!=='object'&&wa===Ea&&!qa||typeof wa!='undefined'&&typeof wa!=='object'&&wa===Ea&&typeof qa[Da]=='undefined'||typeof wa!='undefined'&&typeof wa!=='object'&&wa===Ea&&typeof qa[Da]!='undefined'&&ba.skipEval)++Va;else if(typeof wa!='undefined'&&typeof wa!=='object'&&qa&&typeof qa[Da]!='undefined'){var Ga=0;var La=qa[Da].count();for(let ab in qa[Da])typeof ba[ab][qa[Da][ab]]!=
684
- 'undefined'&&(ba[ab][qa[Da][ab]].re=ba[ab][qa[Da][ab]].re.replace(/%s/,Ea),ua=ba[ab][qa[Da][ab]].modifiers?new RegExp(ba[ab][qa[Da][ab]].re,ba[ab][qa[Da][ab]].modifiers):new RegExp(ba[ab][qa[Da][ab]].re),ua.test(wa)&&++Ga);Ga==La&&++Va}return{matched:Va}},O=function(Ea,Da,wa,Va){var ba=Da.split(/\./g);ba=ba[ba.length-1];ua=new RegExp('("'+ba+'":\\w+)');ba=null;try{if(wa){if(!/^[A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*)*$/.test(Da))throw Error('Invalid property path: `'+Da+'`');var Ga=Da.split('.');Da=wa;
685
- for(wa=0;Da!=null&&wa<Ga.length;wa++)Da=Da[Ga[wa]];ba=Da}}catch(La){}ba&&(Array.isArray(ba)?ba=ba[1].split(/:/)[1]:typeof ba=='string'&&/:/.test(ba)&&(ba=ba.split(/:/)[1]),/(<|>|=)/.test(Ea)?/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/.test(ba)&&/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/.test(Ea)?n(ba.replace(/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/,'new Date("$&")')+Ea.replace(/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/,'new Date("$&")'))&&
686
- ++Va:typeof ba=='string'?n(r(ba,Ea))&&++Va:n(ba+Ea)&&++Va:ba==Ea&&++Va);return{matched:Va}},S=function(Ea,Da,wa,Va,ba){Da=Da.split(/\[\*\]/g);ba=Da[0].replace(/\[\*\]/,'');wa=wa[ba];Da=Da[1];/^\./.test(Da)&&(Da=Da.substring(1));ba=0;if(wa)for(var Ga=0,La=wa.length;Ga<La&&!(oa=/\./.test(Da)?O(Ea,Da,wa[Ga],ba):Ja(Ea,Da,wa[Ga],ba,K),ba=oa.matched,ba>0);++Ga);return{matched:Va+ba}},ya;for(ya in g)if(g[ya]||(g[ya]={}),!/undefined|function/.test(typeof g[ya]))for(let Ea=0,Da=y.count();Ea<Da;++Ea){x=y[Ea];
687
- R=x.count();ha=0;for(var ka in x){if(typeof x[ka]=='undefined')throw Error('filter `'+ka+'` cannot be left undefined');fa=x[ka]===null||/(boolean|number)/.test(typeof x[ka])?x[ka]:x[ka].toLocaleLowerCase();oa=/\./.test(ka)?/\[\*\]/.test(ka)?S(x[ka],ka,g[ya],ha,0):O(x[ka],ka,g[ya],ha):Ja(x[ka],ka,g[ya][ka],ha,K);ha=oa.matched}if(ha==R)if(D&&m&&Z.indexOf(g[ya]._uuid)<0||m||!D){if(!D||D&&V.indexOf(g[ya]._uuid)<0||m)V[X]=g[ya],++X}else D&&!m&&V.indexOf(g[ya]._uuid)<0&&(V[X]=g[ya],++X)}}else V=f;E=null;
688
- V.insert=v.insert;V.notIn=v.notIn;V.find=this.find;V.update=v.update;V.replace=v.replace;V.or=v.or;V.findOne=v.findOne;V.limit=v.limit;V.orderBy=v.orderBy;V.delete=v.delete;V.toRaw=v.toRaw;V.filter=v.filter;return V};v.findOne=function(){var y=null;typeof arguments[arguments.length-1]=='string'&&(delete arguments[arguments.length-1],--arguments.length);arguments.length>0&&(y=arguments);if(typeof y=='undefined'||!y||typeof y!='object')throw Error('[ Collection ][ findOne ] `filters` argument must be defined: Array or Filter Object(s) expected');
675
+ function Collection(f,q){var F=typeof module!=='undefined'&&module.exports?!1:!0,H=F?require('lib/uuid'):require('../../../lib/uuid'),M=F?require('lib/merge'):require('../../../lib/merge'),V={isCaseSensitive:{false:{re:'^%s$',modifiers:'i'},true:{re:'^%s$'}},skipEval:!1},D=!1,m=!1,E=null;F={useLocalStorage:!1,locale:'en',searchOptionRules:V};q=typeof q=='object'?M(q,F):F;var A=['not null'],aa=/^\s*(new\s+Date\("[^"]*"\)|"(?:\\.|[^"\\])*"|-?\d+(?:\.\d+)?)\s*(===|!==|<=|>=|==|!=|<|>)\s*(new\s+Date\("[^"]*"\)|"(?:\\.|[^"\\])*"|-?\d+(?:\.\d+)?)\s*$/,
676
+ l=function(y){var x=y.match(/^\s*new\s+Date\("([^"]*)"\)\s*$/);if(x)return new Date(x[1]);x=y.replace(/^\s+|\s+$/g,'');if(/^"(?:\\.|[^"\\])*"$/.test(x))return JSON.parse(x);var S=Number(x);if(!isNaN(S)&&x!=='')return S;throw Error('Invalid operand: `'+y+'`');},W=/^(===|!==|<=|>=|==|!=|<|>)/,r=function(y,x){x=String(x);var S=x.match(W);if(!S)return JSON.stringify(String(y))+x;S=S[1];x=x.slice(S.length).replace(/^\s+|\s+$/g,'');/^"(?:\\.|[^"\\])*"$/.test(x)&&(x=JSON.parse(x));return JSON.stringify(String(y))+
677
+ S+JSON.stringify(x)},n=function(y){var x=typeof y=='string'?y.match(aa):null;if(!x)throw Error('Could not evaluate condition `'+y+'`.\n(grammar: <operand><op><operand>; operand \u2208 number | "string" | new Date("..."); op \u2208 === !== == != < > <= >=)');try{var S=l(x[1]),X=x[2],g=l(x[3]);if(X==='<'||X==='>'||X==='<='||X==='>=')S instanceof Date&&(S=S.getTime()),g instanceof Date&&(g=g.getTime());switch(X){case '===':return S===g;case '!==':return S!==g;case '==':return S==g;case '!=':return S!=
678
+ g;case '<':return S<g;case '>':return S>g;case '<=':return S<=g;case '>=':return S>=g}}catch(Q){throw Error('Could not evaluate condition `'+y+'`.\n'+Q.stack);}};if(typeof f=='undefined'||f==''||f==null)f=[];if(!Array.isArray(f))throw Error('`new Collection([content] [, options] )`: `content` argument must be an Array !');f=f?JSON.clone(f):[];for(var Z=[],U=F=0,Y=f.length;U<Y;++U)f[U]||(f[U]={}),typeof f[U]._uuid!='undefined'?f[U]._hasItsOwnUuid=!0:f[U]._uuid=H(16),Z[F]=f[U]._uuid,++F;var v=f;v.setSearchOption=
679
+ function(){if(!arguments.length)throw Error('searchOption cannot be left blank');if(arguments.length>3||arguments.length<3&&arguments.length>1)throw Error('argument length mismatch');var y=0,x=arguments.length;if(x==1){if(typeof arguments[0]!='object')throw Error('searchOption must be an object');for(var S in arguments[0])if(typeof V[S]=='undefined')throw Error(arguments[1]+' is not an allowed searchOption !');E=arguments[0]}else for(E||={};y<x;++y){if(typeof V[arguments[1]]=='undefined')throw Error(arguments[1]+
680
+ ' is not an allowed searchOption !');typeof E[arguments[0]]=='undefined'&&(E[arguments[0]]={});/true|false/i.test(arguments[2])?E[arguments[0]][arguments[1]]=/true/i.test(arguments[2])?!0:!1:E[arguments[0]][arguments[1]]=arguments[2]}return v};v.find=function(){D=!1;typeof arguments[arguments.length-1]=='boolean'&&(D=arguments[arguments.length-1],delete arguments[arguments.length-1],--arguments.length);for(var y=0,x=arguments.length,S=null,X=null;y<x;++y)if((S=arguments[y])&&typeof S=='object'&&!Array.isArray(S))for(X in S)if(typeof S[X]==
681
+ 'undefined')throw Error('filter `'+X+'` cannot be left undefined');S=y=x=S=null;try{x=JSON.stringify(arguments),y=JSON.parse(x),S=y.count()}catch(Ea){throw Error('filter must be an object\n'+Ea.stack);}if(typeof y!='undefined'&&S>0){S>1&&(D=!0);S=x=null;X=0;var g=Array.isArray(this)?this:JSON.clone(f),Q=[],ka='',ua=null,pa=E,K=q.searchOptionRules,fa=null,na=[],Ia=function(Ea,Da,wa,Va,ba){E&&typeof E[Da]!='undefined'&&(ba=M(E,ba));if(Ea===null&&wa===null)++Va;else if(Ea&&A.indexOf(ka)>-1&&ka=='not null'&&
682
+ typeof wa!='undefined'&&typeof wa!=='object'&&wa!='null'&&wa!='undefined')Q.indexOf(wa)<0&&++Va;else if(typeof wa!='undefined'&&typeof wa!=='object'&&/(<|>|=)/.test(Ea)&&!/undefined|function/.test(typeof wa)&&!ba.skipEval)Da=wa+Ea,typeof Ea=='string'&&typeof wa=='string'&&(Da=r(wa,Ea)),/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/.test(wa)&&/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/.test(Ea)?n(wa.replace(/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/,'new Date("$&")')+
683
+ Ea.replace(/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/,'new Date("$&")'))&&++Va:n(Da)&&++Va;else if(typeof wa!='undefined'&&typeof wa!=='object'&&wa===Ea&&!pa||typeof wa!='undefined'&&typeof wa!=='object'&&wa===Ea&&typeof pa[Da]=='undefined'||typeof wa!='undefined'&&typeof wa!=='object'&&wa===Ea&&typeof pa[Da]!='undefined'&&ba.skipEval)++Va;else if(typeof wa!='undefined'&&typeof wa!=='object'&&pa&&typeof pa[Da]!='undefined'){var Ga=0;var Ka=pa[Da].count();for(let $a in pa[Da])typeof ba[$a][pa[Da][$a]]!=
684
+ 'undefined'&&(ba[$a][pa[Da][$a]].re=ba[$a][pa[Da][$a]].re.replace(/%s/,Ea),ua=ba[$a][pa[Da][$a]].modifiers?new RegExp(ba[$a][pa[Da][$a]].re,ba[$a][pa[Da][$a]].modifiers):new RegExp(ba[$a][pa[Da][$a]].re),ua.test(wa)&&++Ga);Ga==Ka&&++Va}return{matched:Va}},O=function(Ea,Da,wa,Va){var ba=Da.split(/\./g);ba=ba[ba.length-1];ua=new RegExp('("'+ba+'":\\w+)');ba=null;try{if(wa){if(!/^[A-Za-z_$][\w$]*(\.[A-Za-z_$][\w$]*)*$/.test(Da))throw Error('Invalid property path: `'+Da+'`');var Ga=Da.split('.');Da=wa;
685
+ for(wa=0;Da!=null&&wa<Ga.length;wa++)Da=Da[Ga[wa]];ba=Da}}catch(Ka){}ba&&(Array.isArray(ba)?ba=ba[1].split(/:/)[1]:typeof ba=='string'&&/:/.test(ba)&&(ba=ba.split(/:/)[1]),/(<|>|=)/.test(Ea)?/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/.test(ba)&&/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/.test(Ea)?n(ba.replace(/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/,'new Date("$&")')+Ea.replace(/(\d{4})\-(\d{2})\-(\d{2})(\s+|T)(\d{2}):(\d{2}):(\d{2})/,'new Date("$&")'))&&
686
+ ++Va:typeof ba=='string'?n(r(ba,Ea))&&++Va:n(ba+Ea)&&++Va:ba==Ea&&++Va);return{matched:Va}},T=function(Ea,Da,wa,Va,ba){Da=Da.split(/\[\*\]/g);ba=Da[0].replace(/\[\*\]/,'');wa=wa[ba];Da=Da[1];/^\./.test(Da)&&(Da=Da.substring(1));ba=0;if(wa)for(var Ga=0,Ka=wa.length;Ga<Ka&&!(na=/\./.test(Da)?O(Ea,Da,wa[Ga],ba):Ia(Ea,Da,wa[Ga],ba,K),ba=na.matched,ba>0);++Ga);return{matched:Va+ba}},ya;for(ya in g)if(g[ya]||(g[ya]={}),!/undefined|function/.test(typeof g[ya]))for(let Ea=0,Da=y.count();Ea<Da;++Ea){x=y[Ea];
687
+ S=x.count();fa=0;for(var ja in x){if(typeof x[ja]=='undefined')throw Error('filter `'+ja+'` cannot be left undefined');ka=x[ja]===null||/(boolean|number)/.test(typeof x[ja])?x[ja]:x[ja].toLocaleLowerCase();na=/\./.test(ja)?/\[\*\]/.test(ja)?T(x[ja],ja,g[ya],fa,0):O(x[ja],ja,g[ya],fa):Ia(x[ja],ja,g[ya][ja],fa,K);fa=na.matched}if(fa==S)if(D&&m&&Z.indexOf(g[ya]._uuid)<0||m||!D){if(!D||D&&Q.indexOf(g[ya]._uuid)<0||m)Q[X]=g[ya],++X}else D&&!m&&Q.indexOf(g[ya]._uuid)<0&&(Q[X]=g[ya],++X)}}else Q=f;E=null;
688
+ Q.insert=v.insert;Q.notIn=v.notIn;Q.find=this.find;Q.update=v.update;Q.replace=v.replace;Q.or=v.or;Q.findOne=v.findOne;Q.limit=v.limit;Q.orderBy=v.orderBy;Q.delete=v.delete;Q.toRaw=v.toRaw;Q.filter=v.filter;return Q};v.findOne=function(){var y=null;typeof arguments[arguments.length-1]=='string'&&(delete arguments[arguments.length-1],--arguments.length);arguments.length>0&&(y=arguments);if(typeof y=='undefined'||!y||typeof y!='object')throw Error('[ Collection ][ findOne ] `filters` argument must be defined: Array or Filter Object(s) expected');
689
689
  y=null;var x=Array.isArray(arguments[0])?arguments[0]:v.find.apply(this,arguments)||[];x.length>0&&(y=x.limit(1).toRaw()[0]);return y};v.or=function(){arguments[arguments.length]=!0;++arguments.length;return v.find.apply(this,arguments)};v.limit=function(y){if(typeof y=='undefined'||typeof y!='number')throw Error('[Collection::result->limit(resultLimit)] : `resultLimit` parametter must by a `number`');var x=Array.isArray(this)?this:JSON.clone(f);x=x.splice(0,y);x.insert=v.insert;x.update=v.update;
690
- x.replace=v.replace;x.notIn=v.notIn;x.findOne=v.findOne;x.orderBy=v.orderBy;x.max=v.max;x.delete=v.delete;x.toRaw=v.toRaw;x.filter=v.filter;return x};v.notIn=function(){var y=null,x=null,R=!0;typeof arguments[arguments.length-1]=='string'&&(y=arguments[arguments.length-1],delete arguments[arguments.length-1],--arguments.length);typeof arguments[arguments.length-1]=='boolean'&&(R=arguments[arguments.length-1],delete arguments[arguments.length-1],--arguments.length);arguments.length>0&&(x=arguments);
691
- if(typeof x=='undefined'||!x||typeof x!='object')throw Error('[ Collection ][ notIn ] `filters` argument must be defined: Array or Filter Object(s) expected');var X=JSON.clone(Array.isArray(this)?this:f);if(Array.isArray(arguments[0]))var g=arguments[0];else m=!0,g=v.find.apply(this,arguments)||[],m=!1;if(g.length>0){if(R&&y&&typeof g[0]=='undefined'&&typeof g[0][y]=='undefined')throw Error('[ Collection ][ notIn ] `key` not valid');R&&!y&&typeof g[0]._uuid!='undefined'?y='_uuid':typeof g[0].id!=
692
- 'undefined'&&(y='id');if(!y||typeof g[0][y]=='undefined')throw Error('No comparison key defined !');var V=0,fa=g.length,ua=0,qa,K=x.count(),ha;if(R&&typeof X[ua]!='undefined'&&X[ua].hasOwnProperty(y))for(;V<fa&&X.length;++V)for(ua=0,R=X.length;ua<R;++ua){if(typeof X[ua]!='undefined'&&typeof g[V]!='undefined'&&X[ua][y]===g[V][y]){X.splice(ua,1);break}}else if(typeof X[ua]=='undefined')X=JSON.clone(g);else for(;V<fa&&X.length;++V)for(ua=0,R=X.length;ua<R;++ua)if(typeof X[ua]!='undefined'){for(qa=ha=
693
- 0;qa<K;++qa){if(typeof x[qa]=='undefined')throw Error('filter `'+qa+'` cannot be left undefined');var oa=x[qa].count();var Ja=0;for(y in x[qa])X[ua].hasOwnProperty(y)&&X[ua][y]===g[V][y]&&++Ja;Ja==oa&&++ha}if(ha){X.splice(ua,1);break}}}y=X;y.notIn=v.notIn;y.limit=v.limit;y.find=v.find;y.findOne=v.findOne;y.insert=v.insert;y.replace=v.replace;y.update=v.update;y.orderBy=v.orderBy;y.max=v.max;y.delete=v.delete;y.toRaw=v.toRaw;y.filter=v.filter;return y};v.insert=function(y){if(typeof y!=='object')throw Error('filter must be an object');
694
- var x=Array.isArray(this)?this:f;y._uuid=H(16);x.push(y);x.limit=v.limit;x.find=v.find;x.findOne=v.findOne;x.update=v.update;x.replace=v.replace;x.orderBy=v.orderBy;x.max=v.max;x.notIn=v.notIn;x.delete=v.delete;x.toRaw=v.toRaw;x.filter=v.filter;return x};v.update=function(){var y='_uuid',x,R=x=null;typeof arguments[arguments.length-1]=='string'&&(y=arguments[arguments.length-1],delete arguments[arguments.length-1],--arguments.length);typeof arguments[arguments.length-1]=='object'&&(R=arguments[arguments.length-
695
- 1],delete arguments[arguments.length-1],--arguments.length);arguments.length>0&&(x=arguments);if(typeof x=='undefined'||!x||typeof x!='object')throw Error('[ Collection ][ update ] `filters` argument must be defined: Array or Filter Object(s) expected');if(typeof R=='undefined'||!R||typeof R!='object')throw Error('[ Collection ][ update ] `set` argument must be defined: Object expected');var X=Array.isArray(arguments[0])?arguments[0]:v.find.apply(this,arguments)||[];x=Array.isArray(this)?this:JSON.clone(f);
696
- if(X.length>0){X=X.toRaw();for(var g=0,V=X.length;g<V;++g){X[g]=N(JSON.clone(R),X[g]);for(var fa=0,ua=x.length;fa<ua;++fa)if(typeof x[fa][y]=='undefined'&&y=='_uuid'&&typeof x[fa].id!='undefined'&&(y='id'),x[fa][y]==X[g][y]){x[fa]=X[g];break}}}x.limit=v.limit;x.find=v.find;x.findOne=v.findOne;x.insert=v.insert;x.update=v.update;x.replace=v.replace;x.orderBy=v.orderBy;x.max=v.max;x.notIn=v.notIn;x.delete=v.delete;x.toRaw=v.toRaw;x.filter=v.filter;return x};v.replace=function(){var y='_uuid',x=!1,R,
697
- X=R=null;typeof arguments[arguments.length-1]=='string'&&(y=arguments[arguments.length-1],x=!0,delete arguments[arguments.length-1],--arguments.length);typeof arguments[arguments.length-1]=='object'&&(X=arguments[arguments.length-1],delete arguments[arguments.length-1],--arguments.length);arguments.length>0&&(R=arguments);if(typeof R=='undefined'||!R||typeof R!='object')throw Error('[ Collection ][ update ] `filters` argument must be defined: Array or Filter Object(s) expected');if(typeof X=='undefined'||
698
- !X||typeof X!='object')throw Error('[ Collection ][ update ] `set` argument must be defined: Object expected');var g=Array.isArray(arguments[0])?arguments[0]:v.find.apply(this,arguments)||[];R=Array.isArray(this)?this:JSON.clone(f);if(g.length>0){g=g.toRaw();for(var V=0,fa=g.length;V<fa;++V){g[V]=JSON.clone(X);for(var ua=0,qa=R.length;ua<qa;++ua){var K=y;if(!x&&(typeof R[ua][K]!='undefined'&&typeof g[V][K]!='undefined'||typeof R[ua].id=='undefined'||typeof g[V].id=='undefined'||(K='id'),typeof R[ua][K]==
699
- 'undefined'||typeof g[V][K]=='undefined'))throw Error('No comparison key defined !');if(R[ua][K]==g[V][K]){R[ua]=g[V];break}}}}R.limit=v.limit;R.find=v.find;R.findOne=v.findOne;R.insert=v.insert;R.update=v.update;R.replace=v.replace;R.orderBy=v.orderBy;R.max=v.max;R.notIn=v.notIn;R.delete=v.delete;R.toRaw=v.toRaw;R.filter=v.filter;return R};v['delete']=function(){var y=v.notIn.apply(this,arguments);y.limit=v.limit;y.find=v.find;y.findOne=v.findOne;y.insert=v.insert;y.update=v.update;y.replace=v.replace;
700
- y.orderBy=v.orderBy;y.max=v.max;y.notIn=v.notIn;y.toRaw=v.toRaw;y.filter=v.filter;y.delete=this.delete;return y};v.orderBy=function(){if(typeof arguments=='undefined'||arguments.length<1)throw Error('[ Collection->orderBy(filter) ] where `filter` must not be empty or null');if(arguments.length==1)var y=arguments[0];else{y=Array(arguments.length);for(var x=0,R=y.length;x<R;++x)y[x]=arguments[x]}x=Array.isArray(this)?this:JSON.clone(f);return L(y,x.toRaw())};v.max=function(){if(typeof arguments=='undefined'||
701
- arguments.length<1)throw Error('[ Collection->max(filter) ] where `filter` must not be empty or null');if(arguments.length>1||Array.isArray(arguments[0])||typeof arguments[0]=='object'&&arguments[0].count()>1)throw Error('[ Collection->max(filter) ] only accept one filter length, and fileter count must be equal to 1');var y=arguments[0];try{var x=Object.keys(y)[0],R={};R[x]='desc';return v.find(y).orderBy(R).limit(1)[0][x]}catch(X){throw X;}};var L=function(y,x){if(typeof y!='object')throw Error('`filter` parametter must be an object or an array');
702
- var R={},X=null,g=null,V=X=null;X=[];if(y.count()==0)return null;R.asc=function(fa,ua){var qa=ua.map(function(K,ha){var oa={};oa.index=ha;oa[fa]=K[fa];return oa});qa.sort(function(K,ha){var oa=function(Ja,O){/^(true|false)$/i.test(Ja)&&(Ja=/true/i.test(Ja)?1:0);/^(true|false)$/i.test(O)&&(O=/true/i.test(O)?1:0);if(typeof Ja=='string'&&Ja!=''||typeof O=='string'){if(typeof Ja=='undefined'||Ja==null)Ja='';if(typeof O=='undefined'||O==null)O='';typeof Ja=='number'&&(Ja=''+Ja);typeof O=='number'&&(O=
703
- ''+O);return Ja.localeCompare(O,void 0,{sensitivity:'case',caseFirst:'upper'})}return Ja>O?1:Ja<O?-1:0};return typeof K=='object'?oa(K[fa],ha[fa]):oa(K,ha)});return qa.map(function(K,ha,oa){return ua[K.index]})};R.desc=function(fa,ua){return R.asc(fa,ua).reverse()};X=function(fa,ua){var qa=[],K=[];if(Array.isArray(ua))for(var ha=0,oa=ua.length;ha<oa;++ha)qa[ha]=Object.keys(ua[ha])[0],K[ha]=ua[ha][qa[ha]];else for(oa in ha=0,ua)qa[ha]=oa,K[ha]=ua[oa],++ha;g=function(Ja,O,S,ya,ka){var Ea=ya[ka]=='desc'?
704
- 1:0,Da,wa=Da=null;return typeof Ja[S[ka]]=='string'&&Ja[S[ka]]!=''?(Da=Ja[S[ka]].localeCompare(O[S[ka]]),Ea==0&&Da!=0?Da<0?-1:1:Da!=0?Da<0?1:-1:S.length-1>ka?g(Ja,O,S,ya,ka+1):0):typeof Ja[S[ka]]=='number'||typeof O[S[ka]]=='number'?(Da=(''+Ja[S[ka]]).localeCompare(''+O[S[ka]],void 0,{numeric:!0}),Ea==0&&Da!=0?Da<0?-1:1:Da!=0?Da<0?1:-1:S.length-1>ka?g(Ja,O,S,ya,ka+1):0):typeof Ja[S[ka]]=='boolean'||typeof O[S[ka]]=='boolean'?(typeof Ja[S[ka]]=='boolean'&&(Da=Ja[S[ka]]?1:0),typeof O[S[ka]]=='boolean'&&
705
- (wa=O[S[ka]]?1:0),Da>wa?Ea==0?1:-1:Da<wa?Ea==0?-1:1:S.length-1>ka?g(Ja,O,S,ya,ka+1):0):Ja[S[ka]]>O[S[ka]]?Ea==0?1:-1:Ja[S[ka]]<O[S[ka]]?Ea==0?-1:1:S.length-1>ka?g(Ja,O,S,ya,ka+1):0};return fa.sort(function(Ja,O){return g(Ja,O,qa,K,0)})};Array.isArray(y)||y.count()>1?X=X(x,y):(V=Object.keys(y)[0],X=y[V],X=R[X](V,x));X.find=v.find;X.findOne=v.findOne;X.limit=v.limit;X.notIn=v.notIn;X.insert=v.insert;X.update=v.update;X.replace=v.replace;X.delete=v.delete;X.orderBy=v.orderBy;X.max=v.max;X.toRaw=v.toRaw;
706
- X.filter=v.filter;return X};v.toRaw=function(){for(var y=Array.isArray(this)?this.slice():f.slice(),x=0,R=y.length;x<R;++x){if(y[x]._hasItsOwnUuid){let X=/^true$/i.test(y[x]._hasItsOwnUuid)?!0:!1;delete y[x]._hasItsOwnUuid;if(X)continue}y[x]._uuid&&delete y[x]._uuid}return y};v.filter=function(y){if(typeof y=='undefined')throw Error('`filter` parametter must be a string or an array.');var x=Array.isArray(this)?this:f;if(!x.length)return[];var R=0,X=x.length,g=[],V=0;if(Array.isArray(y))for(var fa,
707
- ua=y.length,qa;R<X;++R){qa=!1;for(fa=0;fa<ua;++fa)typeof x[R][y[fa]]!='undefined'&&(typeof g[V]=='undefined'&&(g[V]={}),g[V][y[fa]]=x[R][y[fa]],qa=!0);qa&&++V}else for(;R<X;++R)typeof x[R][y]!='undefined'&&(typeof g[V]=='undefined'&&(g[V]={}),g[V][y]=x[R][y],++V);return JSON.clone(g)};return v}typeof module!=='undefined'&&module.exports?module.exports=Collection:typeof define==='function'&&define.amd&&define('lib/collection',[],function(){return Collection});
690
+ x.replace=v.replace;x.notIn=v.notIn;x.findOne=v.findOne;x.orderBy=v.orderBy;x.max=v.max;x.delete=v.delete;x.toRaw=v.toRaw;x.filter=v.filter;return x};v.notIn=function(){var y=null,x=null,S=!0;typeof arguments[arguments.length-1]=='string'&&(y=arguments[arguments.length-1],delete arguments[arguments.length-1],--arguments.length);typeof arguments[arguments.length-1]=='boolean'&&(S=arguments[arguments.length-1],delete arguments[arguments.length-1],--arguments.length);arguments.length>0&&(x=arguments);
691
+ if(typeof x=='undefined'||!x||typeof x!='object')throw Error('[ Collection ][ notIn ] `filters` argument must be defined: Array or Filter Object(s) expected');var X=JSON.clone(Array.isArray(this)?this:f);if(Array.isArray(arguments[0]))var g=arguments[0];else m=!0,g=v.find.apply(this,arguments)||[],m=!1;if(g.length>0){if(S&&y&&typeof g[0]=='undefined'&&typeof g[0][y]=='undefined')throw Error('[ Collection ][ notIn ] `key` not valid');S&&!y&&typeof g[0]._uuid!='undefined'?y='_uuid':typeof g[0].id!=
692
+ 'undefined'&&(y='id');if(!y||typeof g[0][y]=='undefined')throw Error('No comparison key defined !');var Q=0,ka=g.length,ua=0,pa,K=x.count(),fa;if(S&&typeof X[ua]!='undefined'&&X[ua].hasOwnProperty(y))for(;Q<ka&&X.length;++Q)for(ua=0,S=X.length;ua<S;++ua){if(typeof X[ua]!='undefined'&&typeof g[Q]!='undefined'&&X[ua][y]===g[Q][y]){X.splice(ua,1);break}}else if(typeof X[ua]=='undefined')X=JSON.clone(g);else for(;Q<ka&&X.length;++Q)for(ua=0,S=X.length;ua<S;++ua)if(typeof X[ua]!='undefined'){for(pa=fa=
693
+ 0;pa<K;++pa){if(typeof x[pa]=='undefined')throw Error('filter `'+pa+'` cannot be left undefined');var na=x[pa].count();var Ia=0;for(y in x[pa])X[ua].hasOwnProperty(y)&&X[ua][y]===g[Q][y]&&++Ia;Ia==na&&++fa}if(fa){X.splice(ua,1);break}}}y=X;y.notIn=v.notIn;y.limit=v.limit;y.find=v.find;y.findOne=v.findOne;y.insert=v.insert;y.replace=v.replace;y.update=v.update;y.orderBy=v.orderBy;y.max=v.max;y.delete=v.delete;y.toRaw=v.toRaw;y.filter=v.filter;return y};v.insert=function(y){if(typeof y!=='object')throw Error('filter must be an object');
694
+ var x=Array.isArray(this)?this:f;y._uuid=H(16);x.push(y);x.limit=v.limit;x.find=v.find;x.findOne=v.findOne;x.update=v.update;x.replace=v.replace;x.orderBy=v.orderBy;x.max=v.max;x.notIn=v.notIn;x.delete=v.delete;x.toRaw=v.toRaw;x.filter=v.filter;return x};v.update=function(){var y='_uuid',x,S=x=null;typeof arguments[arguments.length-1]=='string'&&(y=arguments[arguments.length-1],delete arguments[arguments.length-1],--arguments.length);typeof arguments[arguments.length-1]=='object'&&(S=arguments[arguments.length-
695
+ 1],delete arguments[arguments.length-1],--arguments.length);arguments.length>0&&(x=arguments);if(typeof x=='undefined'||!x||typeof x!='object')throw Error('[ Collection ][ update ] `filters` argument must be defined: Array or Filter Object(s) expected');if(typeof S=='undefined'||!S||typeof S!='object')throw Error('[ Collection ][ update ] `set` argument must be defined: Object expected');var X=Array.isArray(arguments[0])?arguments[0]:v.find.apply(this,arguments)||[];x=Array.isArray(this)?this:JSON.clone(f);
696
+ if(X.length>0){X=X.toRaw();for(var g=0,Q=X.length;g<Q;++g){X[g]=M(JSON.clone(S),X[g]);for(var ka=0,ua=x.length;ka<ua;++ka)if(typeof x[ka][y]=='undefined'&&y=='_uuid'&&typeof x[ka].id!='undefined'&&(y='id'),x[ka][y]==X[g][y]){x[ka]=X[g];break}}}x.limit=v.limit;x.find=v.find;x.findOne=v.findOne;x.insert=v.insert;x.update=v.update;x.replace=v.replace;x.orderBy=v.orderBy;x.max=v.max;x.notIn=v.notIn;x.delete=v.delete;x.toRaw=v.toRaw;x.filter=v.filter;return x};v.replace=function(){var y='_uuid',x=!1,S,
697
+ X=S=null;typeof arguments[arguments.length-1]=='string'&&(y=arguments[arguments.length-1],x=!0,delete arguments[arguments.length-1],--arguments.length);typeof arguments[arguments.length-1]=='object'&&(X=arguments[arguments.length-1],delete arguments[arguments.length-1],--arguments.length);arguments.length>0&&(S=arguments);if(typeof S=='undefined'||!S||typeof S!='object')throw Error('[ Collection ][ update ] `filters` argument must be defined: Array or Filter Object(s) expected');if(typeof X=='undefined'||
698
+ !X||typeof X!='object')throw Error('[ Collection ][ update ] `set` argument must be defined: Object expected');var g=Array.isArray(arguments[0])?arguments[0]:v.find.apply(this,arguments)||[];S=Array.isArray(this)?this:JSON.clone(f);if(g.length>0){g=g.toRaw();for(var Q=0,ka=g.length;Q<ka;++Q){g[Q]=JSON.clone(X);for(var ua=0,pa=S.length;ua<pa;++ua){var K=y;if(!x&&(typeof S[ua][K]!='undefined'&&typeof g[Q][K]!='undefined'||typeof S[ua].id=='undefined'||typeof g[Q].id=='undefined'||(K='id'),typeof S[ua][K]==
699
+ 'undefined'||typeof g[Q][K]=='undefined'))throw Error('No comparison key defined !');if(S[ua][K]==g[Q][K]){S[ua]=g[Q];break}}}}S.limit=v.limit;S.find=v.find;S.findOne=v.findOne;S.insert=v.insert;S.update=v.update;S.replace=v.replace;S.orderBy=v.orderBy;S.max=v.max;S.notIn=v.notIn;S.delete=v.delete;S.toRaw=v.toRaw;S.filter=v.filter;return S};v['delete']=function(){var y=v.notIn.apply(this,arguments);y.limit=v.limit;y.find=v.find;y.findOne=v.findOne;y.insert=v.insert;y.update=v.update;y.replace=v.replace;
700
+ y.orderBy=v.orderBy;y.max=v.max;y.notIn=v.notIn;y.toRaw=v.toRaw;y.filter=v.filter;y.delete=this.delete;return y};v.orderBy=function(){if(typeof arguments=='undefined'||arguments.length<1)throw Error('[ Collection->orderBy(filter) ] where `filter` must not be empty or null');if(arguments.length==1)var y=arguments[0];else{y=Array(arguments.length);for(var x=0,S=y.length;x<S;++x)y[x]=arguments[x]}x=Array.isArray(this)?this:JSON.clone(f);return L(y,x.toRaw())};v.max=function(){if(typeof arguments=='undefined'||
701
+ arguments.length<1)throw Error('[ Collection->max(filter) ] where `filter` must not be empty or null');if(arguments.length>1||Array.isArray(arguments[0])||typeof arguments[0]=='object'&&arguments[0].count()>1)throw Error('[ Collection->max(filter) ] only accept one filter length, and fileter count must be equal to 1');var y=arguments[0];try{var x=Object.keys(y)[0],S={};S[x]='desc';return v.find(y).orderBy(S).limit(1)[0][x]}catch(X){throw X;}};var L=function(y,x){if(typeof y!='object')throw Error('`filter` parametter must be an object or an array');
702
+ var S={},X=null,g=null,Q=X=null;X=[];if(y.count()==0)return null;S.asc=function(ka,ua){var pa=ua.map(function(K,fa){var na={};na.index=fa;na[ka]=K[ka];return na});pa.sort(function(K,fa){var na=function(Ia,O){/^(true|false)$/i.test(Ia)&&(Ia=/true/i.test(Ia)?1:0);/^(true|false)$/i.test(O)&&(O=/true/i.test(O)?1:0);if(typeof Ia=='string'&&Ia!=''||typeof O=='string'){if(typeof Ia=='undefined'||Ia==null)Ia='';if(typeof O=='undefined'||O==null)O='';typeof Ia=='number'&&(Ia=''+Ia);typeof O=='number'&&(O=
703
+ ''+O);return Ia.localeCompare(O,void 0,{sensitivity:'case',caseFirst:'upper'})}return Ia>O?1:Ia<O?-1:0};return typeof K=='object'?na(K[ka],fa[ka]):na(K,fa)});return pa.map(function(K,fa,na){return ua[K.index]})};S.desc=function(ka,ua){return S.asc(ka,ua).reverse()};X=function(ka,ua){var pa=[],K=[];if(Array.isArray(ua))for(var fa=0,na=ua.length;fa<na;++fa)pa[fa]=Object.keys(ua[fa])[0],K[fa]=ua[fa][pa[fa]];else for(na in fa=0,ua)pa[fa]=na,K[fa]=ua[na],++fa;g=function(Ia,O,T,ya,ja){var Ea=ya[ja]=='desc'?
704
+ 1:0,Da,wa=Da=null;return typeof Ia[T[ja]]=='string'&&Ia[T[ja]]!=''?(Da=Ia[T[ja]].localeCompare(O[T[ja]]),Ea==0&&Da!=0?Da<0?-1:1:Da!=0?Da<0?1:-1:T.length-1>ja?g(Ia,O,T,ya,ja+1):0):typeof Ia[T[ja]]=='number'||typeof O[T[ja]]=='number'?(Da=(''+Ia[T[ja]]).localeCompare(''+O[T[ja]],void 0,{numeric:!0}),Ea==0&&Da!=0?Da<0?-1:1:Da!=0?Da<0?1:-1:T.length-1>ja?g(Ia,O,T,ya,ja+1):0):typeof Ia[T[ja]]=='boolean'||typeof O[T[ja]]=='boolean'?(typeof Ia[T[ja]]=='boolean'&&(Da=Ia[T[ja]]?1:0),typeof O[T[ja]]=='boolean'&&
705
+ (wa=O[T[ja]]?1:0),Da>wa?Ea==0?1:-1:Da<wa?Ea==0?-1:1:T.length-1>ja?g(Ia,O,T,ya,ja+1):0):Ia[T[ja]]>O[T[ja]]?Ea==0?1:-1:Ia[T[ja]]<O[T[ja]]?Ea==0?-1:1:T.length-1>ja?g(Ia,O,T,ya,ja+1):0};return ka.sort(function(Ia,O){return g(Ia,O,pa,K,0)})};Array.isArray(y)||y.count()>1?X=X(x,y):(Q=Object.keys(y)[0],X=y[Q],X=S[X](Q,x));X.find=v.find;X.findOne=v.findOne;X.limit=v.limit;X.notIn=v.notIn;X.insert=v.insert;X.update=v.update;X.replace=v.replace;X.delete=v.delete;X.orderBy=v.orderBy;X.max=v.max;X.toRaw=v.toRaw;
706
+ X.filter=v.filter;return X};v.toRaw=function(){for(var y=Array.isArray(this)?this.slice():f.slice(),x=0,S=y.length;x<S;++x){if(y[x]._hasItsOwnUuid){let X=/^true$/i.test(y[x]._hasItsOwnUuid)?!0:!1;delete y[x]._hasItsOwnUuid;if(X)continue}y[x]._uuid&&delete y[x]._uuid}return y};v.filter=function(y){if(typeof y=='undefined')throw Error('`filter` parametter must be a string or an array.');var x=Array.isArray(this)?this:f;if(!x.length)return[];var S=0,X=x.length,g=[],Q=0;if(Array.isArray(y))for(var ka,
707
+ ua=y.length,pa;S<X;++S){pa=!1;for(ka=0;ka<ua;++ka)typeof x[S][y[ka]]!='undefined'&&(typeof g[Q]=='undefined'&&(g[Q]={}),g[Q][y[ka]]=x[S][y[ka]],pa=!0);pa&&++Q}else for(;S<X;++S)typeof x[S][y]!='undefined'&&(typeof g[Q]=='undefined'&&(g[Q]={}),g[Q][y]=x[S][y],++Q);return JSON.clone(g)};return v}typeof module!=='undefined'&&module.exports?module.exports=Collection:typeof define==='function'&&define.amd&&define('lib/collection',[],function(){return Collection});
708
708
  var readyList=[{name:'gina',ctx:window.gina,fn:window.onGinaLoaded}],readyFired=!1,readyEventHandlersInstalled=!1,_ginaDepsSettled=!1,_ginaDepsQueue=[];
709
709
  function _settleDeps(f){if(!_ginaDepsSettled)for(_ginaDepsSettled=!0,f&&typeof console!='undefined'&&console.error&&console.error('[gina] routing dependency still pending after 5s \u2014 releasing handlers with a degraded routing table');_ginaDepsQueue.length;)try{_ginaDepsQueue.shift()()}catch(q){typeof console!='undefined'&&console.error&&console.error(q.stack||q.message||q)}}function _whenDepsSettled(f){_ginaDepsSettled?f():_ginaDepsQueue.push(f)}setTimeout(function(){_settleDeps(!0)},5E3);
710
- function ready(){if(!readyFired){readyFired=!0;var f=null,q=function(F,H){if(H[F])if(H[F].name=='gina')var N=window.setInterval(function(U,D){try{typeof D=='undefined'&&(D=window.readyList),D[U].ctx=window.gina,(f=D[U].fn.call(window,D[U].ctx,window.require))&&_ginaDepsSettled&&(window.clearInterval(N),++U,q(U,D))}catch(m){throw window.clearInterval(N),m;}},50,F,H);else H[F].ctx=window.originalContext||null,H[F].fn.call(window,H[F].ctx,window.require),++F,q(F,H);else H=[]};q(0,readyList)}}
710
+ function ready(){if(!readyFired){readyFired=!0;var f=null,q=function(F,H){if(H[F])if(H[F].name=='gina')var M=window.setInterval(function(V,D){try{typeof D=='undefined'&&(D=window.readyList),D[V].ctx=window.gina,(f=D[V].fn.call(window,D[V].ctx,window.require))&&_ginaDepsSettled&&(window.clearInterval(M),++V,q(V,D))}catch(m){throw window.clearInterval(M),m;}},50,F,H);else H[F].ctx=window.originalContext||null,H[F].fn.call(window,H[F].ctx,window.require),++F,q(F,H);else H=[]};q(0,readyList)}}
711
711
  function readyStateChange(){document.readyState==='complete'&&gina.ready()}
712
712
  if(typeof window.gina=='undefined'){var gina={_global:{register:function(f){if(typeof f!='undefined')for(let q in f)window[q]=f[q]},unregister:function(f){if(typeof f=='undefined'||!Array.isArray(f))throw Error('`variables` needs to ba an array');for(let q=0,F=f.length;q<F;q++)delete window[f[q]]},initialized:[]},ready:function(f,q){readyFired?_whenDepsSettled(function(){setTimeout(function(){f(q)},1)}):(readyList.push({name:'anonymous',fn:f,ctx:q}),document.readyState==='complete'||!document.attachEvent&&
713
713
  document.readyState==='interactive'?setTimeout(ready,1):readyEventHandlersInstalled||(document.addEventListener?(document.addEventListener('DOMContentLoaded',ready,!1),window.addEventListener('load',ready,!1)):(document.attachEvent('onreadystatechange',readyStateChange),window.attachEvent('onload',ready)),readyEventHandlersInstalled=!0))}};window.gina=gina}
714
714
  function _ginaFallbackOnLoaded(f){if(!f)return!1;if(f.isFrameworkLoaded)return!0;var q={env:'{{ page.environment.env }}',envIsDev:/^true$/.test('{{ page.environment.envIsDev }}')?!0:!1,scope:'{{ page.environment.scope }}',scopeIsLocal:/^true$/.test('{{ page.environment.scopeIsLocal }}')?!0:!1,scopeIsProduction:/^true$/.test('{{ page.environment.scopeIsProduction }}')?!0:!1,webroot:'{{ page.environment.webroot }}'};if(typeof f.config!='undefined')for(var F in f.config)q[F]=f.config[F];f.config=q;if(typeof H==
715
- 'undefined')var H=function(N){if(!N.lastModified)return null;N.lastModified&&typeof N.lastModified=='string'&&(N.lastModified=new Date(N.lastModified));N.createdAt&&typeof N.createdAt=='string'&&(N.createdAt=new Date(N.createdAt));N.originalTimeout&&typeof N.originalTimeout=='string'&&(N.originalTimeout=parseInt(N.originalTimeout));N.expiresAt=new Date((new Date(N.lastModified)).getTime()+N.originalTimeout);return N.expiresAt-new Date};f.session||(f.session={id:'{{ page.data.session.id }}',originalTimeout:'{{ page.data.session.timeout }}',
715
+ 'undefined')var H=function(M){if(!M.lastModified)return null;M.lastModified&&typeof M.lastModified=='string'&&(M.lastModified=new Date(M.lastModified));M.createdAt&&typeof M.createdAt=='string'&&(M.createdAt=new Date(M.createdAt));M.originalTimeout&&typeof M.originalTimeout=='string'&&(M.originalTimeout=parseInt(M.originalTimeout));M.expiresAt=new Date((new Date(M.lastModified)).getTime()+M.originalTimeout);return M.expiresAt-new Date};f.session||(f.session={id:'{{ page.data.session.id }}',originalTimeout:'{{ page.data.session.timeout }}',
716
716
  createdAt:'{{ page.data.session.createdAt }}',lastModified:'{{ page.data.session.lastModified }}',expiresAt:null},f.session.__defineGetter__('timeout',function(){return H(this)}),f.session.timeout);window.GINA_ENV='{{ page.environment.env }}';window.GINA_ENV_IS_DEV=/^true$/i.test('{{ page.environment.envIsDev }}')?!0:!1;typeof location.search!='undefined'&&/debug=/i.test(window.location.search)&&(F=(' '+window.location.search).slice(1),!F&&/\?/.test(window.location.href)&&(F=window.location.href.match(/\?.*/),
717
717
  Array.isArray(F)&&F.length>0&&(F=F[0])),(F=F.match(/debug=(true|false)/))&&(window.GINA_ENV_IS_DEV=f.config.envIsDev=q.envIsDev=/^true$/i.test(F[0].split(/=/)[1])?!0:!1));window.GINA_SCOPE='{{ page.environment.scope }}';window.GINA_SCOPE_IS_LOCAL=/^true$/i.test('{{ page.environment.scopeIsLocal }}')?!0:!1;window.GINA_SCOPE_IS_PRODUCTION=/^true$/i.test('{{ page.environment.scopeIsProduction }}')?!0:!1;f.setOptions(q);f.isFrameworkLoaded=!0;f=null;f=document.createElement('link');f.href=q.webroot+'css/vendor/gina/gina.min.css';
718
718
  f.media='screen';f.rel='stylesheet';f.type='text/css';document.getElementsByTagName('head')[0].appendChild(f);f=null;return!0}function _onGinaLoadedEvent(f){window.gina=f.detail;(window.onGinaLoaded||_ginaFallbackOnLoaded)(f.detail)}document.addEventListener?document.addEventListener('ginaloaded',_onGinaLoadedEvent):document.attachEvent&&document.attachEvent('ginaloaded',_onGinaLoadedEvent);define('core',['require','gina'],function(f){f('gina')(window.gina)});require.config({packages:['gina']});
719
719
  require('vendor/engine.io core helpers/prototypes helpers/binding helpers/dateFormat gina/link gina/validator gina/popin gina/storage gina/nav utils/dom utils/events utils/data utils/effects utils/polyfill lib/inherits lib/form-validator lib/collection lib/domain lib/routing lib/loading-state'.split(' '),function(){var f=0,q=function(){try{if(!window.gina||!window.gina.isFrameworkLoaded)f++<100&&(window.setTimeout||function(m){m()})(q,50);else if(!window.gina.hasPopinHandler){var D=require('gina/popin');
720
720
  if(typeof D=='function')(new D({name:'gina-dialog-boot'})).on('ready',function(){})}}catch(m){typeof console!='undefined'&&console.error&&console.error('[gina] popin boot failed',m.stack||m)}};q();var F=0,H=function(){try{if(!window.gina||!window.gina.isFrameworkLoaded||!_ginaDepsSettled)F++<100&&(window.setTimeout||function(A){A()})(H,50);else if(!window.gina.hasValidator){var D=window.gina.forms,m=D&&D.rules?D.rules:null;if(m&&Object.keys(m).length){var E=require('gina/validator');if(typeof E==
721
- 'function')(new E(m)).on('ready',function(){})}}}catch(A){typeof console!='undefined'&&console.error&&console.error('[gina] validator boot failed',A.stack||A)}};H();var N=0,U=function(){try{if(!window.gina||!window.gina.isFrameworkLoaded)N++<100&&(window.setTimeout||function(m){m()})(U,50);else if(!window.gina.hasNavHandler&&typeof document.querySelector=='function'&&document.querySelector('[data-gina-nav]:not([data-gina-nav="false"])')){var D=require('gina/nav');if(typeof D=='function')(new D({})).on('ready',
722
- function(){})}}catch(m){typeof console!='undefined'&&console.error&&console.error('[gina] nav boot failed',m.stack||m)}};U()});
723
- function getDependencies(f,q){var F=new EventTarget,H=typeof window!=='undefined'&&window.__ginaWebroot||f&&f.config&&f.config.webroot||'/',N=null;try{var U=typeof document!='undefined'?document.querySelector('script[data-gina-routing-v]'):null,D=U?U.getAttribute('data-gina-routing-v'):null;N=typeof D=='string'&&/^[0-9a-f]{10}$/.test(D)?D:null}catch(E){N=null}var m=[{func:async function(E,A){A=A.url;var aa=null,l=null,W=null;try{aa=await fetch(A);if(!aa.ok)throw Error('[ROUTING] HTTP '+aa.status+
724
- ' fetching '+A);l=await aa.text();typeof f=='undefined'&&(f={});typeof window.gina.config=='undefined'&&(f.config={});f.config[E]=JSON.parse(l);F.dispatchEvent(new CustomEvent('deps.loaded',{detail:{data:l,error:W,timestamp:new Date}}))}catch(r){W=Error('[ROUTING] Could not load routing\n'+(r.stack||r.message||r)),F.dispatchEvent(new CustomEvent('deps.loaded',{detail:{data:null,error:W,timestamp:new Date}}))}},args:['routing',{url:H+'_gina/assets/routing.json'+(N?'?v='+N:'')}]}];F.addEventListener('deps.loaded',
721
+ 'function')(new E(m)).on('ready',function(){})}}}catch(A){typeof console!='undefined'&&console.error&&console.error('[gina] validator boot failed',A.stack||A)}};H();var M=0,V=function(){try{if(!window.gina||!window.gina.isFrameworkLoaded)M++<100&&(window.setTimeout||function(m){m()})(V,50);else if(!window.gina.hasNavHandler&&typeof document.querySelector=='function'&&document.querySelector('[data-gina-nav]:not([data-gina-nav="false"])')){var D=require('gina/nav');if(typeof D=='function')(new D({})).on('ready',
722
+ function(){})}}catch(m){typeof console!='undefined'&&console.error&&console.error('[gina] nav boot failed',m.stack||m)}};V()});
723
+ function getDependencies(f,q){var F=new EventTarget,H=typeof window!=='undefined'&&window.__ginaWebroot||f&&f.config&&f.config.webroot||'/',M=null;try{var V=typeof document!='undefined'?document.querySelector('script[data-gina-routing-v]'):null,D=V?V.getAttribute('data-gina-routing-v'):null;M=typeof D=='string'&&/^[0-9a-f]{10}$/.test(D)?D:null}catch(E){M=null}var m=[{func:async function(E,A){A=A.url;var aa=null,l=null,W=null;try{aa=await fetch(A);if(!aa.ok)throw Error('[ROUTING] HTTP '+aa.status+
724
+ ' fetching '+A);l=await aa.text();typeof f=='undefined'&&(f={});typeof window.gina.config=='undefined'&&(f.config={});f.config[E]=JSON.parse(l);F.dispatchEvent(new CustomEvent('deps.loaded',{detail:{data:l,error:W,timestamp:new Date}}))}catch(r){W=Error('[ROUTING] Could not load routing\n'+(r.stack||r.message||r)),F.dispatchEvent(new CustomEvent('deps.loaded',{detail:{data:null,error:W,timestamp:new Date}}))}},args:['routing',{url:H+'_gina/assets/routing.json'+(M?'?v='+M:'')}]}];F.addEventListener('deps.loaded',
725
725
  E=>{E&&E.detail&&E.detail.error&&typeof console!='undefined'&&console.error&&console.error('[gina] routing dependency failed to load \u2014 client getRoute()/toUrl() will be degraded until reload:',E.detail.error.stack||E.detail.error.message||E.detail.error);m.splice(0,1);m.length||(_settleDeps(),q())});try{for(let E=0,A=m.length;E<A;E++)m[E].func.apply(null,m[E].args)}catch(E){console.error(E.stack||E.message||E)}}
726
726
  for(var tags=document.getElementsByTagName('script'),t=0,len=tags.length;t<len;++t)if(/(gina\.min\.js|gina\.js)/.test(tags[t].getAttribute('src'))){tags[t].onload=function(f){console.debug('Core Gina loaded !');getDependencies(gina,function(){})}();break};