├── .github ├── dependabot.yml ├── pull_request_template.md └── workflows │ ├── actionlint.yml │ ├── autorelease.yml │ ├── ci.yml │ ├── copy-pr-template-to-dependabot-prs.yml │ └── publish.yml ├── .gitignore ├── .govuk_dependabot_merger.yml ├── .rubocop.yml ├── .ruby-version ├── CHANGELOG.md ├── Gemfile ├── LICENCE ├── README.md ├── Rakefile ├── assets ├── contact_details.png ├── example.png ├── information_callout.png └── warning_callout.png ├── config └── address_formats.yml ├── govspeak.gemspec ├── lib ├── govspeak.rb ├── govspeak │ ├── blockquote_extra_quote_remover.rb │ ├── header_extractor.rb │ ├── html_sanitizer.rb │ ├── html_validator.rb │ ├── link_extractor.rb │ ├── post_processor.rb │ ├── presenters │ │ ├── attachment_image_presenter.rb │ │ ├── attachment_presenter.rb │ │ ├── contact_presenter.rb │ │ ├── h_card_presenter.rb │ │ └── image_presenter.rb │ ├── structured_header_extractor.rb │ ├── template_renderer.rb │ ├── translation_helper.rb │ └── version.rb ├── kramdown │ └── parser │ │ └── govuk.rb └── templates │ └── contact.html.erb ├── locales ├── ar.yml ├── be.yml ├── bg.yml ├── cs.yml ├── cy.yml ├── de.yml ├── el.yml ├── en.yml ├── es-419.yml ├── es.yml ├── et.yml ├── fa.yml ├── fr.yml ├── he.yml ├── hi.yml ├── hu.yml ├── hy.yml ├── id.yml ├── it.yml ├── ja.yml ├── ko.yml ├── ku.yml ├── lt.yml ├── lv.yml ├── pl.yml ├── ps.yml ├── pt.yml ├── ro.yml ├── ru.yml ├── si.yml ├── sr.yml ├── ta.yml ├── th.yml ├── ti.yml ├── tr.yml ├── uk.yml ├── ur.yml ├── uz.yml ├── vi.yml ├── zh-hk.yml ├── zh-tw.yml └── zh.yml └── test ├── blockquote_extra_quote_remover_test.rb ├── govspeak_attachment_link_test.rb ├── govspeak_attachment_test.rb ├── govspeak_attachments_image_test.rb ├── govspeak_attachments_inline_test.rb ├── govspeak_button_test.rb ├── govspeak_contacts_test.rb ├── govspeak_devolved_content_test.rb ├── govspeak_extract_contact_content_ids_test.rb ├── govspeak_footnote_test.rb ├── govspeak_images_bang_test.rb ├── govspeak_images_test.rb ├── govspeak_informational_test.rb ├── govspeak_link_extractor_test.rb ├── govspeak_link_test.rb ├── govspeak_structured_headers_test.rb ├── govspeak_tables_test.rb ├── govspeak_test.rb ├── govspeak_test_helper.rb ├── html_sanitizer_test.rb ├── html_validator_test.rb ├── presenters └── h_card_presenter_test.rb ├── support └── html_helpers.rb ├── test_helper.rb └── translation_helper_test.rb /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/.github/pull_request_template.md -------------------------------------------------------------------------------- /.github/workflows/actionlint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/.github/workflows/actionlint.yml -------------------------------------------------------------------------------- /.github/workflows/autorelease.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/.github/workflows/autorelease.yml -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.github/workflows/copy-pr-template-to-dependabot-prs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/.github/workflows/copy-pr-template-to-dependabot-prs.yml -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/.github/workflows/publish.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/.gitignore -------------------------------------------------------------------------------- /.govuk_dependabot_merger.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/.govuk_dependabot_merger.yml -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.2.8 2 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/Gemfile -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/LICENCE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/Rakefile -------------------------------------------------------------------------------- /assets/contact_details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/assets/contact_details.png -------------------------------------------------------------------------------- /assets/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/assets/example.png -------------------------------------------------------------------------------- /assets/information_callout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/assets/information_callout.png -------------------------------------------------------------------------------- /assets/warning_callout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/assets/warning_callout.png -------------------------------------------------------------------------------- /config/address_formats.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/config/address_formats.yml -------------------------------------------------------------------------------- /govspeak.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/govspeak.gemspec -------------------------------------------------------------------------------- /lib/govspeak.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak.rb -------------------------------------------------------------------------------- /lib/govspeak/blockquote_extra_quote_remover.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/blockquote_extra_quote_remover.rb -------------------------------------------------------------------------------- /lib/govspeak/header_extractor.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/header_extractor.rb -------------------------------------------------------------------------------- /lib/govspeak/html_sanitizer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/html_sanitizer.rb -------------------------------------------------------------------------------- /lib/govspeak/html_validator.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/html_validator.rb -------------------------------------------------------------------------------- /lib/govspeak/link_extractor.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/link_extractor.rb -------------------------------------------------------------------------------- /lib/govspeak/post_processor.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/post_processor.rb -------------------------------------------------------------------------------- /lib/govspeak/presenters/attachment_image_presenter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/presenters/attachment_image_presenter.rb -------------------------------------------------------------------------------- /lib/govspeak/presenters/attachment_presenter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/presenters/attachment_presenter.rb -------------------------------------------------------------------------------- /lib/govspeak/presenters/contact_presenter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/presenters/contact_presenter.rb -------------------------------------------------------------------------------- /lib/govspeak/presenters/h_card_presenter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/presenters/h_card_presenter.rb -------------------------------------------------------------------------------- /lib/govspeak/presenters/image_presenter.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/presenters/image_presenter.rb -------------------------------------------------------------------------------- /lib/govspeak/structured_header_extractor.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/structured_header_extractor.rb -------------------------------------------------------------------------------- /lib/govspeak/template_renderer.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/template_renderer.rb -------------------------------------------------------------------------------- /lib/govspeak/translation_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/govspeak/translation_helper.rb -------------------------------------------------------------------------------- /lib/govspeak/version.rb: -------------------------------------------------------------------------------- 1 | module Govspeak 2 | VERSION = "10.8.3".freeze 3 | end 4 | -------------------------------------------------------------------------------- /lib/kramdown/parser/govuk.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/kramdown/parser/govuk.rb -------------------------------------------------------------------------------- /lib/templates/contact.html.erb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/lib/templates/contact.html.erb -------------------------------------------------------------------------------- /locales/ar.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/ar.yml -------------------------------------------------------------------------------- /locales/be.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/be.yml -------------------------------------------------------------------------------- /locales/bg.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/bg.yml -------------------------------------------------------------------------------- /locales/cs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/cs.yml -------------------------------------------------------------------------------- /locales/cy.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/cy.yml -------------------------------------------------------------------------------- /locales/de.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/de.yml -------------------------------------------------------------------------------- /locales/el.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/el.yml -------------------------------------------------------------------------------- /locales/en.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/en.yml -------------------------------------------------------------------------------- /locales/es-419.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/es-419.yml -------------------------------------------------------------------------------- /locales/es.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/es.yml -------------------------------------------------------------------------------- /locales/et.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/et.yml -------------------------------------------------------------------------------- /locales/fa.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/fa.yml -------------------------------------------------------------------------------- /locales/fr.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/fr.yml -------------------------------------------------------------------------------- /locales/he.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/he.yml -------------------------------------------------------------------------------- /locales/hi.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/hi.yml -------------------------------------------------------------------------------- /locales/hu.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/hu.yml -------------------------------------------------------------------------------- /locales/hy.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/hy.yml -------------------------------------------------------------------------------- /locales/id.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/id.yml -------------------------------------------------------------------------------- /locales/it.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/it.yml -------------------------------------------------------------------------------- /locales/ja.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/ja.yml -------------------------------------------------------------------------------- /locales/ko.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/ko.yml -------------------------------------------------------------------------------- /locales/ku.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/ku.yml -------------------------------------------------------------------------------- /locales/lt.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/lt.yml -------------------------------------------------------------------------------- /locales/lv.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/lv.yml -------------------------------------------------------------------------------- /locales/pl.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/pl.yml -------------------------------------------------------------------------------- /locales/ps.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/ps.yml -------------------------------------------------------------------------------- /locales/pt.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/pt.yml -------------------------------------------------------------------------------- /locales/ro.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/ro.yml -------------------------------------------------------------------------------- /locales/ru.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/ru.yml -------------------------------------------------------------------------------- /locales/si.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/si.yml -------------------------------------------------------------------------------- /locales/sr.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/sr.yml -------------------------------------------------------------------------------- /locales/ta.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/ta.yml -------------------------------------------------------------------------------- /locales/th.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/th.yml -------------------------------------------------------------------------------- /locales/ti.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/ti.yml -------------------------------------------------------------------------------- /locales/tr.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/tr.yml -------------------------------------------------------------------------------- /locales/uk.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/uk.yml -------------------------------------------------------------------------------- /locales/ur.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/ur.yml -------------------------------------------------------------------------------- /locales/uz.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/uz.yml -------------------------------------------------------------------------------- /locales/vi.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/vi.yml -------------------------------------------------------------------------------- /locales/zh-hk.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/zh-hk.yml -------------------------------------------------------------------------------- /locales/zh-tw.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/zh-tw.yml -------------------------------------------------------------------------------- /locales/zh.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/locales/zh.yml -------------------------------------------------------------------------------- /test/blockquote_extra_quote_remover_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/blockquote_extra_quote_remover_test.rb -------------------------------------------------------------------------------- /test/govspeak_attachment_link_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_attachment_link_test.rb -------------------------------------------------------------------------------- /test/govspeak_attachment_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_attachment_test.rb -------------------------------------------------------------------------------- /test/govspeak_attachments_image_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_attachments_image_test.rb -------------------------------------------------------------------------------- /test/govspeak_attachments_inline_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_attachments_inline_test.rb -------------------------------------------------------------------------------- /test/govspeak_button_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_button_test.rb -------------------------------------------------------------------------------- /test/govspeak_contacts_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_contacts_test.rb -------------------------------------------------------------------------------- /test/govspeak_devolved_content_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_devolved_content_test.rb -------------------------------------------------------------------------------- /test/govspeak_extract_contact_content_ids_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_extract_contact_content_ids_test.rb -------------------------------------------------------------------------------- /test/govspeak_footnote_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_footnote_test.rb -------------------------------------------------------------------------------- /test/govspeak_images_bang_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_images_bang_test.rb -------------------------------------------------------------------------------- /test/govspeak_images_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_images_test.rb -------------------------------------------------------------------------------- /test/govspeak_informational_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_informational_test.rb -------------------------------------------------------------------------------- /test/govspeak_link_extractor_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_link_extractor_test.rb -------------------------------------------------------------------------------- /test/govspeak_link_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_link_test.rb -------------------------------------------------------------------------------- /test/govspeak_structured_headers_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_structured_headers_test.rb -------------------------------------------------------------------------------- /test/govspeak_tables_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_tables_test.rb -------------------------------------------------------------------------------- /test/govspeak_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_test.rb -------------------------------------------------------------------------------- /test/govspeak_test_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/govspeak_test_helper.rb -------------------------------------------------------------------------------- /test/html_sanitizer_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/html_sanitizer_test.rb -------------------------------------------------------------------------------- /test/html_validator_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/html_validator_test.rb -------------------------------------------------------------------------------- /test/presenters/h_card_presenter_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/presenters/h_card_presenter_test.rb -------------------------------------------------------------------------------- /test/support/html_helpers.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/support/html_helpers.rb -------------------------------------------------------------------------------- /test/test_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/test_helper.rb -------------------------------------------------------------------------------- /test/translation_helper_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alphagov/govspeak/HEAD/test/translation_helper_test.rb --------------------------------------------------------------------------------